आप एक कस्टम चयनकर्ता बना सकते हैं (शायद बहुत अक्षम हालांकि):
$.extend($.expr[':'], {
onclick: function(node, index, args, stack) {
var events = $(node).data('events');
var fn = args[3];
if (!events || !events.click) return false;
for (i in events.click) {
if (events.click[i].name == fn) return true;
}
return false;
}
});
$("input[type='button']:onclick('save')")
function.name
IE में काम नहीं करता है, हालांकि, तो आप toString() और regexps का उपयोग कर एक और हुक के माध्यम से कूद करना होगा। सब कुछ, आप ईवेंट हैंडलर नामों की सूची को मैन्युअल रूप से बनाए रखने से कहीं बेहतर हैं।
संपादित करें: अपने कोड स्निपेट को देखकर, ईवेंट हैंडलरों की खोज करने के लिए कोई कारण नहीं है। चारों ओर विशेषता चयनकर्ताओं को जंगली रूप से फेंकने के बजाय, अपने तत्वों को एक अर्थपूर्ण अर्थपूर्ण तरीके से संबोधित करने के लिए कक्षाओं और आईडी का उपयोग करें, उदा।
<img id="scroll-icon" src="icons/scroll.gif" />
<input id="submit-button" type="submit" onclick="save();" />
और फिर
$("#scroll-icon".click(function(){
var targetOffset = $("submit-buttton").offset().top;
$("html,body").animate({scrollTop: targetOffset}, 400);
});
तो तुम एक बटन जिसका onclick एक विधि को बचाने के साथ शुरू करने के लिए बाध्य है खोजने की कोशिश कर रहे हैं? – justkt
हाँ, ठीक – dragonfly