2011-06-01 15 views
7

मैं यह पता लगाने की कोशिश कर रहा हूं कि लिंक आईडी को आउटपुट करके पहले 3 लिंक किस पर क्लिक किए जा रहे हैं।पता लगाएं कि कौन सा लिंक क्लिक किया गया था? हमेशा अपरिभाषित करता है। क्या गलत है?

यह हमेशा undefined देता है।

क्या गलत है?

<html> 
    <head> 

    <script src="http://code.jquery.com/jquery-latest.js"></script> 

    <script type="text/javascript"> 
     window.onload = function() { 

     onclick = function() { 
      alert(this.id); 
      return false; 
     } 
      } 
    </script> 
    </head> 

    <body> 

    <a class="a" name="a" id="1" href="#">---1---</a> 
    <a class="a" name="a" id="2" href="#">---2---</a> 
    <a class="a" name="a" id="3" href="#">---3---</a> 

    <a href="#"> normal link </a> 

    </body> 
</html> 
+8

उस कोड में कुछ भी घटना तत्वों को किसी भी तत्व से जोड़ता नहीं है। – Pointy

+0

ओह, अगर आप किसी भी तरह से jQuery का उपयोग करने जा रहे हैं, तो अपनी प्रारंभिकताओं को पुराने तरीके से "window.onload" हैंडलर में ऐसा न करें। या तो "तैयार" हैंडलर का प्रयोग करें, या jQuery के साथ अपना "लोड" हैंडलर सेट करें। – Pointy

उत्तर

13

आप किसी भी लिंक को लक्षित नहीं कर रहे हैं।

window.onload = function() { 
    $("a.a").click(function() { 
     alert(this.id); 
     return false; 
    }); 
    } 

क्या यह क्या कर रहा है ($("a.a").click(function(){) किसी भी क्लिक की घटनाओं के लिए वर्ग के नाम 'एक' और निम्नलिखित गुमनाम समारोह चलाने की एंकर पर लग रही है।

4

आपने Jquery का एक भी बिट उपयोग नहीं किया है। यहाँ jQuery संस्करण है कि मैं jsfiddle पर किए गए के लिए जाँच करें: http://jsfiddle.net/8tu8W/ अपने HTML

2

संशोधित थोड़ा

<a class="a" name="a" id="anch1" href="#">---1---</a> 
    <a class="a" name="a" id="anch2" href="#">---2---</a> 
    <a class="a" name="a" id="anch3" href="#">---3---</a> 

    <a href="#"> normal link </a> 

अपने लंगर आईडी और शुरू की दस्तावेज़ तैयार घटना बदल दिया है।

$(function(){ 
    $("a.a").click(function(){ 
     alert (this.id); 
    }); 
}); 
0

ऐसा कुछ। आप सरणी के लिए क्लिक करने योग्य लिंक जोड़ देंगे, फिर दस्तावेज़ पर ईवेंट पर बाध्य करें, ईवेंट विधि में आपको एक खोज पर क्लिक करने का लक्ष्य मिलेगा यदि यह है और सरणी में कौन सी स्थिति है।

window.onload = function() { 
    var clickableLinks = []; 
    var links = document.getElementsByTagName("a"); 
    for(var i=0,len=links.length;i< len;i++) { 
    var link = links[i]; 
    if(link.className.split(" ").indexOf("a") != -1) { // Or another detection 
     clickableLinks[clickableLinks.length] = link; 
    } 
    } 
    document.attachEvent('onclick', clicked); // IE 
    document.addEventListener('click', clicked, false); // Other browsers 

    function clicked(event) { 
    var target; 
    if (event.target) {target = event.target}; 
if (event.srcElement) {target = event.srcElement}; 
    var index = clickableLinks.indexOf(target); 
    if(index != -1) { 
     alert("clicked at", index+1, "link"); 
    } 
} 
संबंधित मुद्दे

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