所以,你有一個頁面:稱爲頁面的每一個元素jQuery的AJAX事件時只針對一個元素
<html><head>
<script type="text/javascript" src="jquery.1.3.2.js"></script>
<script type="text/javascript">
$(function() {
var onajax = function(e) { alert($(e.target).text()); };
var onclick = function(e) { $(e.target).load('foobar'); };
$('#a,#b').ajaxStart(onajax).click(onclick);
});
</script></head><body>
<div id="a">foo</div>
<div id="b">bar</div>
</body></html>
你會想到一個警報或兩個當你點擊「富」?我希望只有一個,但我得到兩個。爲什麼一個事件有多個目標?這肯定似乎違反了最不讓人驚訝的原則。我錯過了什麼嗎?有沒有辦法通過事件對象在哪個div上調用load()調用?這肯定會有幫助...
編輯:澄清,點擊的東西只是爲演示。有一個非通用的ajaxStart處理程序是我的目標。我希望div#a做一件事情,當它是ajax事件和div#b做一些不同的事情時。所以,從根本上說,我想能夠告訴哪個div load()在我捕獲ajax事件時被調用。我開始認爲這是不可能的。也許我應該把這與jQuery的開發...
如果divs嵌套,這可能是半意義的,但因爲它們不是這種奇怪的行爲。也許你的CSS是使divs以某種方式重疊? – theGecko 2009-07-29 16:44:36
有趣......看着這個...... – Jason 2009-07-29 16:46:24
沒有css。使用這個確切的代碼,你會得到的效果。 – 2009-07-29 17:32:53