jQuery的click()只能为DOM 0和通过jQuery注册的事件处理程序触发事件处理程序……?
[更新:]这个问题与:jQuery的click()有什么关系?
jQuery的click()没有点击?
以下代码:
some content [ ... ] 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); });