[更新:]這個問題涉及到:jQuery的click()是做什麼的?jQuery的click()只能觸發DOM 0的事件處理程序和通過jQuery註冊的事件處理程序...?
jQuery's click() is not clicking?
下面的代碼:
<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)改變邊界6個像素藍色虛線
2)改變文本里面的div是綠色的
3)將div的背景改爲灰白色
4)去www.google.com
,但如果你等待,讓的setTimeout()的函數來踢,那麼它只會做
$('#clickme').click(function() { })
onclick = function() { ... }
它不會做addEventListener
一個,它不會跟隨鏈接。 (IE 8不會允許addEventListener
)
所以它是真的嗎? jQuery的click()與觸發器('click')相同,只會觸發通過自身註冊的事件處理程序和DOM級別0事件處理程序?
推測(並且作爲Michael答案的部分答案)部分或全部非jQuery代碼是您的控制之外的代碼?如果是這樣的話,可能值得在你的問題中加上這個。 – 2010-06-28 08:55:19
林健你見過我編輯的解決方案嗎?你可以測試它,並讓一些反饋? – 2010-06-29 14:08:56