2011-08-12 34 views
28

मेरे पास एक साधारण सवाल है। निम्नलिखित कोड सभी टैग के लिए काम करता है:jquery div पर क्लिक करें

$('*').click(function(e) { 
    alert(1); 
}); 

लेकिन, जब मैं आईडी "सामग्री" के साथ div के लिए इस कोड का प्रयास करें:

$('#content').click(function(e) { 
    alert(1); 
}); 

क्या मैं गलत कर रहा हूँ?

+0

मुझे नहीं पता, आप क्या गलत कर रहे हैं (त्रुटि/अप्रत्याशित रूप में)? –

उत्तर

38

यकीन है कि यह एक दस्तावेज तैयार tagAlternatively के भीतर है बनाओ, का उपयोग करके देखें .live

$(document).ready(function(){ 

    $('#content').live('click', function(e) { 
     alert(1); 
    }); 
}); 

उदाहरण:

$(document).ready(function() { 
 
    $('#content').click(function(e) { 
 
     alert(1); 
 
    }); 
 
});
#content { 
 
    padding: 20px; 
 
    background: blue; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
 
<div id="content">Hello world</div>

jQuery 1.7, .live के रूप में () विधि बहिष्कृत है। ईवेंट हैंडलर संलग्न करने के लिए .on() का उपयोग करें।

$('#content').on("click", function() { 
    alert(1); 
}); 
0

यह fiddle देखें ... आप इसे सही तरीके से कर रहे हैं। सुनिश्चित करें कि आईडी सामग्री है और यह भी देखने के लिए जांचें कि एक ही आईडी के साथ कोई अन्य तत्व नहीं है। यदि एक ही आईडी के साथ कई तत्व हैं, तो यह पहले व्यक्ति से जुड़ जाएगा। यही कारण है कि आप इसे नहीं देख रहे हैं।

+0

धन्यवाद, एक और बात जो मैं उल्लेख करना भूल गया वह यह है कि कोई अन्य टैग काम नहीं करता है (शरीर, एचटीएमएल इत्यादि ..) – CoachNono

8

कुछ भी नहीं।

$('#content').click(function(e) { 
    alert(1); 
}); 

content को आईडी सेट के साथ एक मौजूदा HTML तत्व के लिए बाध्य होगा, और क्लिक पर एक संदेश बॉक्स दिखाई देगा।

  • सुनिश्चित करें कि #content कि कोड का उपयोग कर आईडी अद्वितीय
  • किसी भी त्रुटि या मुद्दों
1

के लिए अपने Javascript कंसोल चेक है

  • कि मई आईडी के साथ div = "से पहले मौजूद है सामग्री "इस घटना को संलग्न होने पर नहीं बनाया जा सकता है? आप लाइव() jquery विधि आज़मा सकते हैं।

    वरना वहाँ एक ही आईडी के साथ कई divs हो सकता है या आप बस कोड वर्तनी यह गलत है, यह होता है ...

  • 1

    लपेटें $(document).ready() विधि या $() में।

    $(function(){ 
    
    $('#content').click(function(e) { 
        alert(1); 
    }); 
    
    }); 
    
    +0

    कुल, इसे उत्तर के रूप में चिह्नित करने के लिए मत भूलना :) – ShankarSangoli

    +1

    जब भी आप कोई तत्व ढूंढना चाहते हैं या ईवेंट संलग्न करना चाहते हैं डोम तत्वों के हैंडलर सुनिश्चित करें कि आप इसे '$()' या '$ (दस्तावेज़) .ready()' विधि में करते हैं। '$ (" * ") 'काम करता है क्योंकि यह दस्तावेज़ को ईवेंट संलग्न करता है और इवेंट हैंडलर निष्पादित करने के लिए इवेंट बबलिंग तंत्र का उपयोग करता है। – ShankarSangoli

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