2011-08-25 150 views
2

如果我編寫如下的jQuery代碼;jQuery解綁定事件

$("input:checkbox").unbind("touchstart"); 

這裏touchstart只能被iPad識別。 這可能會導致不明白touchstart的桌面瀏覽器的問題,我應該把這段代碼放在一個if(iPad)塊

也是如何理解「touchstart」即使我找不到任何引用它在JS庫中。

+0

它不會導致任何問題。 jQuery使用一個特殊的事件庫,而不是默認的DOM實現瀏覽器提供的。 – Exelian

+0

所以你基本上說錯誤不會來,因爲我使用的是一個jQuery語句......如果我有一些正常的JS代碼就像使用document.addEventListenser(「touchstart」,Fn)...在這種情況下,它會在桌面瀏覽器上導致錯誤?請確認.. – testndtv

+0

是的,這正是我所說的。這些事件是jQuery生成的,與實際的DOM事件無關。 – Exelian

回答

2

如果事件不受支持,仍然可以解除綁定事件。 jQuery並不瞭解touchstart,至少不像你期望的那樣。它只是以'touchstart'的名義持有一個處理程序列表,如果您調用unbind,它將刪除它們。如果瀏覽器不支持touchstart,你就不會看到事件觸發。

請記住,不支持觸摸事件是一回事,它是另一個沒有觸摸設備,最新的桌面瀏覽器確實支持觸摸事件。

+0

所以你是說我不需要將代碼放在if(iPad)塊中,因爲它不會在某些桌面瀏覽器上給出任何錯誤(它只是不會理解它) – testndtv

+0

準確地說。從某種意義上說,jQuery並不在乎你綁定或解綁定的事件,事件不會觸發,其他所有事件都是相同的,沒有錯誤。你可以綁定他們,你可以得到他們,你可以解除他們。我只用我卑微的Firefox 3.6在jquery.com上試過它,它運行時沒有錯誤。綁定也沒有錯誤。 – Sheepy