我有一堆webtrend标签通过使用dcsMultitrack这是很简单,但有很多代码让我们重复的webtrend服务器说:创建webtrend功能使用JS来消除重复申请并调用
1. var args = ["DCSext.name","a", "DCSext.title", "random"]; //etc ...
比选择
2. $("a", "#main").bind("click", function(){
do some extra stuff.....
dcsMultitrack.apply(this, args);
})
***
编辑:
$("a", "#main").bind("mouseover", function(){
do some extra stuff.....
dcsMultitrack.apply(this, args);
})
or maybe
$("#main").delegate("mouseover", function(){
do some extra stuff.....
dcsMultitrack.apply(this, args);
})
etc....
从1号开始假设我有一些常见参数commonlogs=[];
,这些参数将适用于每个选择器和常用选项,但是会有额外的参数,而不是我不想重复那些常用的日志。此外,我传递的参数值基于一些dom元素,假设我从dom中获取一个值,比如说选择器的颜色,玩家的名字等等,所以基本上这必须在相同的上下文中。
case: $("#selector").bind("click", function(){
var playername = $(this).parent().text(),
title = $(this).closest('tr').find(".title").text(); etc etc..
args = ["DCSext.name", palyername, "DCSext.title", title, etc ];
dcsMultitrack.apply(this, args);
});
EDIT2:澄清:
$("#selector1").bind("change", function(){
var val1 = someval1, val2= someval2, //etc.
args = ["DCSext.something", val1, "DCSext.title", val2]; //
dcsMultitrack(this, args);
});
$("#selector2").bind("mouseover", function(){
var val3 = someval1, val4= someval2, //etc.
args2 = ["DCSext.something", val3, "DCSext.title", val4]; //
dcsMultitrack(this, args2);
});
注:ARGS有一些共同的PARAMS让说VAR
commonargs = ["DCSext.common", one, /*etc*/];
1,是所有跨自从值重复2是不同的,但有没有办法删除所有这些代码的重复?我想提取到一个单一的函数,只传递选择器和附加值。
而且另一个问题是:
var context = "#main,#main2";
$(context).delegate("a", "click", function(){
something ....
dcsMultitrack.apply(this, args);
});
这工作完全,但我可以通过一个数组,而不是字符串作为背景,并提取到的功能?
像
var context = ["#main", "#main2"];
请让我知道,如果需要更多的澄清。
function bindClick(target, args) {
target.bind("click", function(){
// do some extra stuff.....
dcsMultitrack.apply(this, args);
});
}
var args = ["DCSext.name","a", "DCSext.title", "random"]; //etc ...
bindClick($("a", "#main"), args);
var otherArgs = ["other", "args"];
bindClick($("a.other"), otherArgs);
// etc.
编辑:如果你绑定到事件的方式从一组args
到另一个不同,您可以创建
谢谢!非常简单的解决方案...我完全忘记了数组连接...但添加到第一部分我可能有事件处理程序不仅仅是click..than它不会工作...我可能需要更新我的问题... – paul 2012-01-05 11:15:53
@paul:我更新了答案。请看一看。只要//做一些额外的事情......每次都会保持不变,它就会工作。 – PPvG 2012-01-05 11:24:44
感谢您更新的答案..您是否看到我更新的问题...? – paul 2012-01-05 11:48:12