2010-04-13 23 views
13

मैं AJAX के साथ एक पृष्ठ में सामग्री लोड कर रहा हूं जिसमें उनसे जुड़े लाइव क्लिक ईवेंट होंगे। ऐसा लगता है कि पहली बार जब मैं इस सामग्री को लोड करता हूं तो सब कुछ अपेक्षित काम करता है। अगर मैं इसे फिर से लोड करता हूं, तो घटनाएं दो बार आग लगती हैं (जब कोड में ब्रेकपॉइंट्स डालते हैं)। मैं क्या गलत कर रहा हूं? क्या कोई तरीका है कि मैं फिर से लोड होने से पहले इन तत्वों के डोम को साफ़ कर सकता हूं?jquery लाइव इवेंट को दो बार निष्पादित किया जाता है

+6

मेरी क्रिस्टल बॉल अभी उपलब्ध नहीं है, शायद आप अपना कोड पोस्ट कर सकते हैं? –

उत्तर

32

मुझे लगता है कि आप बार-बार उसी तत्व पर .live() पर कॉल कर रहे हैं। पर कॉल करने से पहले उन तत्वों पर .die() का उपयोग करें।

+0

ठीक है, मैं इसे आज़मा दूंगा और देख सकता हूं कि यह कैसे काम करता है। – Victor

22

मैं इसे इस तरह तय:

$('selector').die('click').live('click', function() { 
    // Do stuff here 
}); 
2

बस की पुष्टि की। .live() का उपयोग कर रहा था और पहले .unbind() के साथ प्रयोग किया गया था।

अंतिम:

$(".clickedClass").die("click").live("click", function() { 

}); 
0

आप पर रहते हैं के बजाय विधि का उपयोग कर रहे हैं। फिर

jQuery ('body')। Unbind()। ('Submit', 'form.make_commitment_form', function (e) {....});

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