2
之間在靶向元件到差失敗由於這是從DOM的簡化摘錄:事件代理瀏覽器
<td>
<button value="11" class="expand ui-button ui-widget ui-state-default ui-corner-all ui-button-icon-only" role="button" title="">
<span class="ui-button-icon-primary ui-icon ui-icon-plus"></span>
<span class="ui-button-text"></span>
</button>
</td>
這被重複,每行中的表(〜500),並且該表具有ID '事件表' 的
這裏的按鈕實例(jQueryUI的):
$('.expand').each(function(){
$(this).button({
text: false,
icons: {
primary: "ui-icon-plus"
}
});
});
這裏有一個表#eventTable
事件代表團的一部分$('#eventTable').click(function(e){
if($(e.target).is('.expand'){
// ...
現在,在Firefox 3.6.x,IE7,8中,這個工作和步驟進入if
聲明。然而,在Safari和Chrome中,e.target
代表第一個span
而不是周圍的button
。
這是怎麼發生的?我可以通過它,但我會喜歡解釋,所以我不會在不同的場景中遇到同樣的問題。爲什麼Webkit正確,Trident/Gecko錯誤?什麼導致了差異?
我很難相信e.target是第一個跨度,並檢查$(e.target).parent()沒有做你想做的。那些似乎不相容。 – Leopd 2011-05-19 20:36:55
你說得對。剛剛從IDE切換到Vim - 測試了一個過時的文件。編輯... – wanovak 2011-05-19 20:40:41
你爲什麼不在按鈕本身上放一個點擊事件? – DarthJDG 2011-05-19 20:57:26