2012-03-12 28 views
2

而不是僅僅結合功能點擊事件,我compare_remove()函數實際上得到在IE7/8叫(在IE9工作正常,FF,Webkit)。重新綁定()函數獲取IE7發射/ 8

HTML:

<div id="compare_listing_1234" class="compare_out_listing" title="Click to Add to Compare" onclick="compare_add('1234'); "></div> 

SCRIPT:

function compare_add(pid) { 
    $('#compare_listing_'+pid).removeClass("compare_out_listing").addClass("compare_in_listing"); 
    $('#compare_listing_'+pid).attr("title","Click to Remove from Compare"); 
    $('#compare_listing_'+pid).prop("onclick", null); 
    $('#compare_listing_'+pid).unbind('click').click(function(){ compare_remove(pid); }); 
} 

有誰知道爲什麼嗎?

+0

我認爲我完全錯誤地閱讀了這個問題,並屠殺了標題:(請更新/糾正它,如果我這樣做的話。 – 2012-03-12 22:09:54

+0

我已經恢復/更新標題:) – DRC 2012-03-12 22:22:14

+1

對於任何有類似問題的人...我最終從html中刪除了onclick,並使用jQuery的click()事件。所以基本上最好不要同時使用onclick和click()/ bind(「click」)。 – DRC 2012-04-25 21:54:22

回答

0
function compare_add(pid) { 
    window.event.cancelBubble = true; 
    $('#compare_listing_'+pid).removeClass("compare_out_listing").addClass("compare_in_listing"); 
    $('#compare_listing_'+pid).attr("title","Click to Remove from Compare"); 
    $('#compare_listing_'+pid).prop("onclick", null); 
    $('#compare_listing_'+pid).unbind('click').click(function(){ compare_remove(pid); }); 
} 
+0

添加* window.event.cancelBubble = true; *不幸的是沒有解決我的問題(儘管我認爲它可能!) – DRC 2012-03-12 22:55:52

1

Internet Explorer 8將調用在事件分派期間添加到元素的事件偵聽器。當事件傳遞每個元素時,Firefox會捕獲事件偵聽器的快照,所以它不會調用這個特定的事件偵聽器,但可以調用捕獲事件偵聽器添加的冒泡事件偵聽器。