jQuery的click()只能为DOM 0和通过jQuery注册的事件处理程序触发事件处理程序……?

[更新:]这个问题与:jQuery的click()有什么关系?

jQuery的click()没有点击?

以下代码:

some content

Click Me

[ ... ] onload = function() { $('#clickme').click(function() { $('#oneDiv').css({border: '6px dotted #07d'}) }); document.getElementById('clickme').onclick = function() { document.getElementById('oneDiv').style.color = 'green'; } document.getElementById('clickme').addEventListener("click", function() { document.getElementById('oneDiv').style.background = '#ffc'; }, false); // bubbling phase setTimeout(function() { $('#clickme').click(); }, 3000); }

如果单击该链接,则浏览器将显示

1)将边框更改为6px点蓝色
2)将div内的文本更改为绿色
3)将div的背景改为offwhite
4)访问www.google.com

但是如果你等待并让setTimeout()的函数启动,那么它只会执行

 $('#clickme').click(function() { }) onclick = function() { ... } 

它不会执行addEventListener ,也不会跟随链接。 (IE 8将不允许addEventListener

这是真的吗? jQuery的click(),它与触发器(’click’)相同,只会触发通过自身注册的事件处理程序和DOM 0级事件处理程序?

jQuery应该为选择器和事件提供一些帮助,但是你可以将它与直接的javascript混合使用。 我认为最好只使用jQuery格式:

_更换

 document.getElementById('clickme').onclick 

通过

 $('#clickme').click(function {...}); 

_替换

 addEventListener("click" 

_ by

 live("click") or bind("click") 

(有关区别,请参阅jQuery文档)。

_最后:

 document.getElementById('oneDiv').style.background = '#ffc'; 

_ by

 $('#oneDiv').css('background-color','#ffc'); 

还:

通过$(window).load(function(){….})更改onload;

如果仍有问题,请告诉我们,但如果您真的想进入jQuery并做强大的工作,我建议您阅读一个很好的教程;)

编辑:这绝对有效:

 $(window).load(function() { $('#clickme').click(function() { $('#oneDiv').css({border: '6px dotted #07d'}); $('#oneDiv').css('color','green'); $('#oneDiv').css('background-color','#ffc');}) setTimeout(function() { $('#clickme').click(); }, 3000); });