में पहले हैंडलर से, अन्य ईवेंट हैंडलर को कैसे रोकें यदि आप एक HTML तत्व में दो या अधिक ईवेंट हैंडलर संलग्न करते हैं, तो उन्हें एक के बाद एक निष्पादित किया जाएगा। हालांकि, अगर आप पहले हैंडलर में चेक की गई शर्त के आधार पर आगामी ईवेंट हैंडलर को रोकना चाहते हैं, तो आपको क्या करना चाहिए?jQuery के
उदाहरण के लिए:
<div id='target'>
</div>
<p id='result'>
</p>
मैं अगर पहले हैंडलर को रोकने के बाद दूसरा हैंडलर रद्द करना चाहते हैं।
$(function() {
var target = $('#target'),
result = $('#result');
target.click(function(e) {
result.append('first handler<br />');
// Here I want to cancel all subsequent event handlers
});
target.click(function(e) {
result.append('second handler<br />');
});
});
आप पहेली here देख सकते हैं।
पुनश्च: मुझे पता है कि e.preventDefault()
(उदाहरण के लिए, एक HTTP GET अनुरोध को रोकने के लिए एक लिंक पर क्लिक करें की वजह से भेजा जा रहा है) HTML तत्व का डिफ़ॉल्ट कार्रवाई रोकता है, और e.preventPropagation()
अपनी मूल तत्वों को प्रचारित किए जाने से घटना का कारण बनता है डोम पेड़ में। मुझे यह भी पता है कि एक मध्यम चर का उपयोग करना संभव है, इसे पहले हैंडलर में सही पर सेट करें, और इसे बाद के हैंडलर में जांचें। लेकिन मैं देखना चाहता हूं कि इस समस्या के लिए एक अधिक साफ, परिष्कृत समाधान है या नहीं।
मैं अद्यतन [बेला] (http://jsfiddle.net/saeedneamati/pFp7P/2/) आपका जवाब प्रतिबिंबित करने के लिए। +1 और धन्यवाद। –