2012-12-28 24 views
20

संभव डुप्लिकेट:यह जांचने के लिए कि तत्व ने हैंडलर पर क्लिक किया है या नहीं?

link.data("events") //undefined even if link has event handlers 
jQuery.data(link, 'events') //undefined always also 
jQuery._data(link, 'events') //undefined always also 

jQuery-1.8.3 का उपयोग कर:
test if event handler is bound to an element in jQuery

निम्न कार्य करने की कोशिश की (लिंक 'एक' टैग के jQuery वस्तु है)

तो, यह जांचने के लिए कि तत्व ने हैंडलर पर क्लिक किया है या नहीं?

+4

आपने क्लिक हैंडलर को कैसे असाइन किया? – AmShaegar

+1

क्या आप निश्चित रूप से लिंक का चयन कर रहे हैं – NimChimpsky

+0

लिंक.क्लिक (... कुछ फ़ंक्शन ...) के साथ सौंपा हैंडलर कई बार, क्योंकि मैं जांच नहीं सकता कि यह पहले से मौजूद है या नहीं। और इसलिए हैंडलर ने कई बार – kostepanych

उत्तर

34

आप घटनाओं की जांच के लिए jQuery._data का उपयोग कर सकते हैं। पहला तर्क HTML तत्व का संदर्भ होना चाहिए, न कि jQuery ऑब्जेक्ट।

var ev = $._data(element, 'events'); 
if(ev && ev.click) alert('click bound'); 

नीचे नमूना।

$(function(){ 
 
    $('#test').click(function(){ 
 
     // NOTE: this below is refering to the HTML element, NOT the jQuery element 
 
     var ev = $._data(this, 'events'); 
 
     if(ev && ev.click) alert('click bound to this button'); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
 
<button id="test">Click me to check for click handlers</button>

भी ध्यान रखें कि जाँच की घटनाओं के लिए इस विधि केवल जब घटना jQuery के माध्यम से ही है काम करेंगे। यदि घटना element.attachEventListener, element.onclick, <a onclick="doStuff()"> या किसी अन्य गैर jQuery तरीके से बाध्य है, तो यह काम नहीं करेगा। यदि आप इस नाव में फिट बैठ रहे हैं, तो this answer देखें।

+0

@Blossoming_Flower निष्पादित किया है क्या आप विस्तृत कर सकते हैं? यह मेरे लिए jQuery संस्करण 2.1.3 और 1.11.0 पर काम कर रहा है। – Snuffleupagus

+0

मेरी माफ़ी, यह मेरे हिस्से में एक त्रुटि थी। मैंने अपनी टिप्पणी हटा दी है। –

+0

@ Ionian316 'अपरिभाषित == झूठी' तो' if (ev && ev.click) 'वही काम करता है। – Snuffleupagus

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

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