2010-02-21 96 views
2

我怎麼做做多的jQuery事件的新方式,現場活動(新內容時注射):jQuery的:多重實時事件綁定

$('.foo', this).bind({ 
    click: function() { 
     //do thing 
    }, 
    mouseover: function() { 
     //do other thing 
    }, 
    mouseout: function() { 
     //do other other thing 
    }, 
    focus: function() { 
     //do other other other thing 
    } 
}); 

例如在上面的,我需要的任何內容與點擊和所有其他事件綁定。

基本上,我試圖避免編寫:

$('.foo', this).live('click', function() { 
    //do thing 
    } 
}); 
$('.foo', this).live('mouseover', function() { 
    //do other thing 
    } 
}); 
$('.foo', this).live('mouseout', function() { 
    //do other other thing 
    } 
}); 
$('.foo', this).live('focus', function() { 
    //do other other other thing 
    } 
}); 

回答

4

如果你想每一個事件做的唯一的東西,你要對你的手一個冗長的任務。如果你需要每個事件做同樣的事情,這將是一個更短的任務。您可以綁定多個事件,但它仍然會是有些冗長:

$('.foo', this).live('mouseover mouseout', function(e) { 
    if (e.type == 'mouseover') { 
    // do something on mouseover 
    } else 
    if (e.type == 'mouseout') { 
    // do something on mouseout 
    } 
}); 

再次,如果他們都沒有同樣的事情,這將是簡單的:

$('.foo', this).live('mouseover mouseout', function(){ 
    // do something on both events 
}); 

文檔:http://api.jquery.com/live/

4

.........

$('.fastlook', this).live('click', function() { 
    // more code....... 
    } 
}); 

編輯:

如果你想分配多個事件,只是將它們與空間分開,例如:

$("selector").live('click mousemove mousedown', function(){ 
    // more code............. 
}); 

..........含有 JavaScript事件類型,如

eventType一個字符串 「點擊」 或 「KEYDOWN」。從jQuery 1.4開始, 字符串也可以包含多個,空間分隔的事件類型或自定義的事件名稱,即 。

來源:http://api.jquery.com/live/

+0

這不是我一直在尋找的東西,我的錯,我編輯了這個問題,使其更清晰。 – Smickie 2010-02-24 11:38:20

+0

@Smickie:在更新了我的答案之後,我已經更新了我的答案,請參閱我的答案中的編輯部分,謝謝:) – Sarfraz 2010-02-24 11:48:44