天天看點

鋒利的jQuery--jQuery事件,動畫(讀書筆記二)

1.注意$(document).ready()方法和window.onload方法之間的細微差別

$(document).ready()在dom樹建構完成就會執行,而window.onload是在dom樹建構完成後且相關的檔案下載下傳完畢後才會執行。

例如:一個圖庫頁面,且給頁面上圖檔綁定了事件

$(document).ready()就會在圖庫頁面的dom結構完成就會執行,但這時候頁面上面圖檔還沒下載下傳完畢,給圖檔綁定的事件也就不能起作用。這時候如果要擷取圖檔的寬高就會失敗。

為了解決這個問題:可以使用jquery中的:

    $(window).load(function(){})

這個函數類似于javascript中的:

window.onload=function(){}

而window.onload是在所有圖檔下載下傳完成後才會執行并且綁定事件。缺點是影響頁面加載速度。

2.jquery的is()與next()

3.事件冒泡

鋒利的jQuery--jQuery事件,動畫(讀書筆記二)

span的click冒泡到div的click,div的click冒泡到body的click。

有時候這種冒泡如果不是你想要的話,情況會比較惡劣。

因為你觸發了span的點選事件也就會觸發div的,觸發body的。

jquery中阻止冒泡的方法:

even.stoppropagation();

jquery中阻止預設的行為:

even.preventdefault();

同時阻止冒泡與預設行為:

return false;是一種簡寫。

3.事件對象的屬性

event.type()

event.stoppropagation()

event.target();

event.relatedtarget();

event.pagex()/event.pagey()

event.which();

event.metakey();

event.originalevent();

4.模拟事件操作

<1>$("#but").trigger("click");

$("#but").click();

模拟了點選行為。

<2>trigger不僅可以觸發浏覽器支援的事件,還可以觸發自定義事件。

$("#but").bind("zqzclick",function(){

    alert("這是zqz的自定義事件");

});

$("#but").trigger("zqzclick");或

$("#but").zqzclick(); ---------不知道這樣寫行不?

<3>trigger綁定資料

鋒利的jQuery--jQuery事件,動畫(讀書筆記二)

<4>triggerhandler()

<5>bind()可以綁定多個事件

<6>添加事件命名空間,便于管理

删除的時候隻會删除命名空間下的。

鋒利的jQuery--jQuery事件,動畫(讀書筆記二)

<7>停止動畫

$(this).stop(true)

 轉載:http://www.cnblogs.com/zqzjs/p/4934543.html

繼續閱讀