[英]jQuery's click() can trigger event handlers only for DOM 0 and event handlers registered through jQuery…?
[更新:]這個問題與以下內容有關:jQuery的click()做什么?
如下代碼:
<div id="oneDiv">
some content
</div>
<p>
<a href="http://www.google.com" id="clickme">Click Me</a>
</p>
[ ... ]
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的背景更改為灰白色
4)前往www.google.com
但是如果您等待並讓setTimeout()函數啟動,那么它將只會執行
$('#clickme').click(function() { })
onclick = function() { ... }
它不會執行addEventListener
之一,也不會遵循該鏈接。 (順便說一句,IE 8不允許addEventListener
)
是這樣嗎 jQuery的click()與trigger('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);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.