2009-10-29 13 views
16

jQuery की 'लाइव' विधि एकाधिक घटनाओं को संभालने में असमर्थ है। क्या किसी को एक ऐसे कार्य में कई घटनाओं को संलग्न करने के लिए एक अच्छा कामकाज पता है जो वर्तमान और भविष्य के तत्वों को चुनाव देता है? या क्या मुझे प्रत्येक इवेंट हैंडलर के लिए डुप्लिकेट लाइव विधियों का उपयोग करके अटक गया है?jQuery 'लाइव' विधि में कई ईवेंट बाध्य करें

उदाहरण - मैं की तरह कुछ करने के लिए कोशिश कर रहा हूँ:

$('.myclass').live('change keypress blur', function(){ 
    // do stuff 
}); 
+0

क्या आप एक ही घटना में एकाधिक हैंडलर संलग्न करने की कोशिश कर रहे हैं? या आप कई अलग-अलग घटनाओं के लिए एक हैंडलर संलग्न करने की कोशिश कर रहे हैं? – geowa4

+0

ऐसा लगता है जैसे वह एक ही हैंडलर में कई घटनाएं चाहता है, जैसे कि आप $ ("ए") कर सकते हैं। (["क्लिक करें", "माउसओवर", "डबलक्लिक"], फ़ंक्शन() {// यहां सामग्री करें }। जो आप नहीं कर सकते हैं। –

+0

मैं "$ ('myclass') जैसे कुछ करने की कोशिश कर रहा हूं। लाइव (" क्लिक करेंप्रेस ब्लर ", फ़ंक्शन() {..." –

उत्तर

14

jQuery 1.4.3 के रूप में, आप एक से अधिक लाइव ईवेंट हैंडलर्स एक साथ घटना प्रकार का एक नक्शा पास करके बाध्य कर सकते हैं/हैंडलर जोड़े:

$("a").live({ 
    click: function() { 
    // do something on click 
    }, 
    mouseover: function() { 
    // do something on mouseover 
    } 
}); 

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

jQuery 1.7 से, समारोह "पर" बेहतर है:

$("a").on({ 
    click: function() { 
     // do something on click 
    }, 
    mouseenter: function() { 
     // do something on mouseenter 
    }, 
    mouseleave: function() { 
     // do something on mouseleave 
    } 
}); 
19

jQuery 1.4.1 .live() के रूप में कई, अंतरिक्ष अलग घटनाओं, .bind() में प्रदान की कार्यक्षमता के लिए इसी तरह स्वीकार कर सकते हैं। उदाहरण के लिए, हम "लाइव बाँध" इतनी तरह एक ही समय में माउसओवर और mouseout घटनाओं कर सकते हैं:

$('.hoverme').live('mouseover mouseout', function(event) { 
    if (event.type == 'mouseover') { 
    // do something on mouseover 
    } else { 
    // do something on mouseout 
    } 
}); 
7

jQuery 1.7 में वहाँ एक API कि आप इसे आसानी से ऐसा करने की अनुमति ...

$(".myClass").on({ 
    click: function(){ 
     alert("You click on me!"); 
    }, 
    mouseenter: function(){ 
     alert("Do you want click on me?"); 
    } 
}); 

मेरी राय में इस पद्धति पूरी तरह से कुशल और सभी क्षमताओं है कि आप तत्व की स्थिति में उपयोग कर सकते हैं एकत्र है ... ।

इस तरह से .on() [ jQuery 1.7 API ]

1

कोशिश यह पेज पर एक नज़र डालें:

("#button").bind("click keyup", function(){ 

// your code goes here 

}) 
संबंधित मुद्दे