如果我的頁面標題中有一個.click()函數,是否有可能稍後在頁面中覆蓋它?是否可以在JQuery中更改.click()函數?
例如,如果我有這樣的標題:
<script>
$("document").ready(function() {
$("a.lol").click(function() {
alert("aaa");
});
});
</script>
有沒有可能改變$("a.lol")
提醒別的東西,而不是提醒「AAA」?
如果我的頁面標題中有一個.click()函數,是否有可能稍後在頁面中覆蓋它?是否可以在JQuery中更改.click()函數?
例如,如果我有這樣的標題:
<script>
$("document").ready(function() {
$("a.lol").click(function() {
alert("aaa");
});
});
</script>
有沒有可能改變$("a.lol")
提醒別的東西,而不是提醒「AAA」?
試試這個,
$("document").ready(function() {
$("a.lol").click(function() { // initially the click event
alert("aaa");
});
$("a.lol").off('click');// off the click event
$("a.lol").on('click',function() { // again bind new click event with on()
alert("new click");
});
});
閱讀和off()
您可以使用.unbind(),然後「放回」添加一個新的處理程序。
$("a.lol").unbind('click');
使用$("a.lol").off('click')
刪除所有點擊處理。之後,您可以安裝新的。
對於舊版本的jQuery,使用unbind()
這是我的理解是,關閉()將不會刪除添加的處理程序與點擊() 。從文檔:「.off()方法刪除使用.on()附加的事件處理程序」。 –
謝謝!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! – user2217162
@BrianStephens我剛試過。對我來說工作得很好。如果你[看源代碼](http://james.padolsey.com/jquery/#v=1.10.2&fn=jQuery.fn.click),你會發現'.click'只是映射到'.on內部(如'.bind'和'.delegate')。 – Blazemonger