2016-11-29 4 views
0

Я пытаюсь выбрать тег привязки, используя Jquery, который находится внутри нескольких div.JQuery anchor click function

Ниже мой код:

<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> 

Теперь, если я что-то вроде этого

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

Но, используя этот подход, я должен буду написать эту функцию для iteratorDiv2, iteratorDiv3 и iteratorDiv4 также. Есть ли способ идентифицировать якорный щелчок от mainDiv что-то вроде ниже. Однако это не сработало.

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

Я просто пытаюсь предотвратить повторное кодирование. Любые указания.

+0

'$ (" iteratorDiv1 а, .mainDiv а") .. ..'. Используйте '.on ('click',' for jQuery 1.7+ – Tushar

+0

Как и в jQuery 1.7, метод '.live()' устарел. Какую версию jQuery вы используете? – Satpal

+0

1) Да - используйте ключевое слово 'this' чтобы получить ссылку на элемент, который поднял событие. 2) 'live()' был устарел a * long *. Вы должны использовать 'on()' вместо этого, и убедитесь, что используете последнюю версию jQuery - 1.12 на самом старом –

ответ

1

Пожалуйста, проверьте следующее jsFiddle:

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

Ваш код прекрасно работает до Jquery версии 1.8.3 .Для более поздних версий, пожалуйста, используйте следующую команду:

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

Используйте .parent() метод, чтобы получить родитель любой ссылки вы щелкнули.

0

Я просто сделал некоторые испытайте здесь и, похоже, сработаете. Вы могли бы сказать, JQuery, где именно ваш "а", так что вы можете попробовать что-то вроде этого:

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

или

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