2016-11-29 2 views
0

Ich versuche einen Weg, um ein Anker-Tag mit Jquery, die in mehreren div ist.JQuery-Anker-Klick-Funktion

Unten ist mein Code:

<div class="mainDiv"> 
    <div id="secondDiv" class="check"> 
     <div class="iteratorDiv1" id="id1"> 
      <a href="url">link text</a> 
     </div> 
     <div class="iteratorDiv2" id="id2"> 
      <a href="url">link text</a> 
     </div> 
     <div class="iteratorDiv3" id="id3"> 
      <a href="url">link text</a> 
     </div> 
     <div class="iteratorDiv4" id="id4"> 
      <a href="url">link text</a> 
     </div> 
    </div> 
</div> 

Nun, wenn ich etwas zu tun wie diese

$(".iteratorDiv1 a").live('click',function(e) 
{ 
    alert("hey working"); 
}); 

Aber mit diesem Ansatz werde ich für diese Funktion schreiben iteratorDiv2, iteratorDiv3 und iteratorDiv4 auch. Gibt es eine Möglichkeit, ich kann den Anker klicken von der mainDiv etwas wie unten. Das hat aber nicht funktioniert.

Ich versuche nur, wiederholende Codierung zu verhindern. Irgendeine Anleitung.

+0

'$ (" iteratorDiv1 a, .mainDiv a") .. ..'. Verwenden Sie '.on ('click',' für jQuery 1.7+ – Tushar

+0

Ab jQuery 1.7 ist die '.live()' Methode veraltet. Welche Version von jQuery verwenden Sie? – Satpal

+0

1) Ja - verwenden Sie das Schlüsselwort 'this' um einen Bezug auf das Element zu bekommen, das das Ereignis ausgelöst hat 2) 'live()' wurde vor einer * langen * Zeit veraltet. Sie sollten stattdessen 'on()' verwenden, und stellen Sie sicher, dass Sie eine aktuelle Version von jQuery - 1.12 verwenden, bei der ältesten –

Antwort

1

Bitte überprüfen Sie folgende jsFiddle:

http://jsfiddle.net/amoolya93/1xL9od85/3/

Ihr Code bis JQuery Version 1.8.3 .Für späteren Versionen einwandfrei funktioniert, benutzen Sie bitte folgendes:

  $('.mainDiv a').on('click',function(e) 
      { alert("hey working"); 
     }); 
-1
$("a").on('click',function(e) 
{ 
    var parent = $(this).parent(); 
    alert(parent.attr(class)) ; 
}); 

Verwenden .parent() Methode, um Eltern von jedem Link geklickt hat.

0

ich einige gerade getan hast Test hier und scheint zu arbeiten. Sie könnten jQuery sagen, wo genau Ihr "a" ist, so dass Sie so etwas wie dies versuchen:

$(".mainDiv div > a").on("click", function() { 
    alert("Hey it's working"); 
}); 

oder

$(".mainDiv a").on("click", function() { 
    alert("Hey it's working"); 
});