2013-02-15 60 views
2
$('.consejosTab').live("click", function(){ 
    window.location = 'http://encuentratrabajoonline.es/consejos/'; 
    console.log('clicked') 
}); 

任何人都可以向我解釋什麼代碼正在頁面加載初始化,但只在IE8?我禁用了所有觸發器,並確認沒有其他可能會干擾此操作的點擊功能。此代碼位於document.ready中,並且是似乎在頁面加載時觸發的唯一點擊函數。爲什麼IE8在頁面加載時運行jQuery.click函數?

編輯:

在一個有趣的轉折,在IE8的點擊功能event.target是窗口。在IE8中它作爲頁面的URL返回,但在其他所有內容中,它顯示爲它被點擊的實際元素?

+2

在頁面加載時,是否有任何操作調用'.click()'(無參數)或'.trigger('click')? – 2013-02-15 19:44:13

+0

該選項卡上是否存在運行$(「。consejosTab」),click()或類似代碼的初始化代碼。這可能是在其他地方發生的「錯誤」點擊(假設您不是意外地點擊了IE8中的元素!) – SmokeyPHP 2013-02-15 19:45:01

+2

使用調試器查找調用堆棧。 – SLaks 2013-02-15 19:47:24

回答

0

解決此問題的一種好方法是記錄被單擊的元素。

$('.consejosTab').live("click", function(evt){ 
    console.log(evt.target); 
}); 

然後,您將能夠看到被點擊了哪些元素(和頁面不會重新加載)。我假設你有多個標籤爲consejosTab的元素。

您也可以在該console.log行放置一個斷點,然後瀏覽調用堆棧。

+0

我喜歡使用事件目標的想法,在這個頁面上只有一個這個類的實例,我可以確認沒有其他引用這個特定元素的點擊函數。 – Xenology 2013-02-15 20:27:19

相關問題