我的标签触发器由setInterval工作,当它在文档中找到标签时会发出警报。在将函数放入对象进行排列之前,代码没有任何问题,
实例:
这是没有对象的“原始”工作代码:
// looking for the special tag than save the
// element in varabile and than alert
(function(){
var win = window ,
doc = document ,
setInter = 'setInterval' ,
clearInter = 'clearInterval' ,
getByTagName = 'getElementsByTagName' ,
KW_pluslike = 'mysite:plugin' ,
zero = 0 ,
element;
// Set 'setInterval' function as trigger
// to target the Special tag.
var trigger = win[setInter](function(){
// Check if such tag exist , if not repeat. When the tag
// has founded , it set the root to the Element var.
if(doc[getByTagName](KW_pluslike)[zero]){
element = doc[getByTagName](KW_pluslike)[zero];
win[clearInter](trigger);
alert("Tag Captured");
}
} , 1000 /5 );
})();
正如我所说的那样,我想稍微安排一下,所以我采用Trigger函数和Element变量并将它们替换为这样的对象:
var pluslike = {
element : nul ,
trigger : win[setInter](function(){
if(doc[getByTagName](KW_pluslike)[zero]){
pluslike.element = doc[getByTagName](KW_pluslike)[zero];
win[clearInter](pluslike.trigger);
alert("Tag Captured");
}
} , 1000 /5 );
}
pluslike.trigger;
某种原因,由于某些原因,它不起作用,导致问题的原因是什么?我不知道。什么时候开始?当我在对象中使用该函数时。
提前谢谢。
答案 0 :(得分:1)
对象文字中的分号导致您的问题。 固定代码:http://jsfiddle.net/ae6Xc/11/
在对象文字内,属性应以逗号分隔。不允许使用分号
您的代码和修补代码的比较:
trigger : win[setInter](... , 1000 /5 ); //<---Semicolon!!!@!@!@
trigger : win[setInter](... , 1000 /5 ) //<-- Patched, no semicolon