RELATEED CONSULTING
相關咨詢
選擇下列産品馬上(shàng)在線溝通(tōng)
服務時(shí)間(jiān):9:00-18:00
你(nǐ)可(kě)能遇到了下面的問題
關閉右側工具欄
使用livequery插件對動态創建的DOM元素進行(xíng)事件綁定
  • 作(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。

查看演示DEMO 下載源碼

先來(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庫。