- 作(zuò)者:admin
- 發表時(shí)間(jiān):2013-07-02 14:17:17
- 來(lái)源:未知
Livequery是一款基于jQuery的插件,主要作(zuò)用是對動态創建的DOM元素進行(xíng)事件綁定。比如我在頁面中動态創建了一個(gè)新的按鈕,需要通(tōng)過單擊新的按鈕來(lái)完成某些(xiē)操作(zuò),這個(gè)時(shí)候就可(kě)以用到livequery。
先來(lái)看以個(gè)不适用livequery的例子。
通(tōng)過單擊頁面上(shàng)的按鈕創建一個(gè)新的按鈕,這時(shí)再去單擊新按鈕時(shí)卻沒有(yǒu)任何反應,但(dàn)是我已經在新的按鈕上(shàng)通(tōng)過bind方法綁定了一個(gè)click事件,原因是bind函數(shù)執行(xíng)時(shí),這些(xiē)新的按鈕還(hái)沒創建,所以不可(kě)能綁上(shàng)事件。這時(shí)需要借助livequery來(lái)完成綁定,直接将上(shàng)述代碼中的bind改成livequery,當然先要加載livequery插件。
其實到這裏還(hái)沒發現livequery有(yǒu)多(duō)強大(dà),jQuery本身的live方法已經基本能實現了上(shàng)述功能。
$(".newdiv").live('click',function(){ alert('綁定了單擊事件'); });
關鍵是livequery不光隻是綁定事件,它還(hái)能做(zuò)很(hěn)多(duō)事。
接下來(lái)看一個(gè)支持jQuery UI的draggable函數(shù)的例子:
在頁面上(shàng)放置一個(gè)按鈕。
執行(xíng)操作(zuò):
$("#drag").click(function(){ $("新增了一個(gè)可(kě)以拖動的DIV").insertAfter($(this)); }); $(".dragdiv").livequery(function(){ $(this).draggable(); });
借助livequery和(hé)jQuery UI,可(kě)以在頁面上(shàng)動态創建N個(gè)可(kě)以拖動的DIV。此外完成此例必須導入jQuery UI庫。