我有一堆 webtrend 标签要使用 dcsMultitrack 传递给 webtrend 服务器,这非常简单,但是有很多重复的代码可以说:
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....
作为第一,假设我有一些通用参数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);
});
编辑2:澄清:
$("#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 有一些常见的参数让我们说 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"];
如果需要更多说明,请告诉我。