2015-04-15 3 views
3

Как проверить, был ли элемент с щелчком якорем, содержащим img?Проверить, если jQuery щелкнул элемент якорем, содержащим img

Так, например, я хочу, чтобы проверить, если этот элемент был щелкнул:

<a href="#"> 
    <img src="#" /> 
<a/> 
jQuery(document).click(function(e) { 
    // e.target.hereIsWhereINeedHelp; 
}); 

Заранее спасибо!

ответ

3

Если вы хотите, чтобы захватить «нажмите» из любого элемента:

jQuery(document).click(function(e) { 
    if (jQuery(e.target).is('a') && jQuery(e.target).has('img')) { 
     // code goes here 
    }  
}); 

Выбираете ли Вы, чтобы предотвратить «поведение по умолчанию» это другой вопрос.

1

Вы можете использовать метод has(), чтобы проверить, если элемент содержит другой:

$('a').click(function(e) { 
    e.preventDefault(); // this will stop the link from going anywhere. 
    if ($(this).has('img')) { 
     // do something 
    } 
}); 

Вы также можете использовать if ($(this).find('img').length).

0

Вы можете использовать has() или find()

$("a").on("click", function(e) { 

    e.preventDefault(); // Prevents the link redirection 

    if ($(this).has("img")) { 
     console.log("has image"); 
    } 

}); 
0

Просто проверьте, если щелкнуть мышью элемент якорь тег с помощью is, а затем использовать find, чтобы искать image. Если оба истины, то вы //do something.

jQuery(document).click(function() { 
    var el = $(this); 
    if(el.is("a") && el.find("img").length > 0){ 
     //do something 
    } 
}); 
1

Используйте has() метод

this.has("img"); 
2

Вы можете использовать .is("a") и .has("img"):

<a href="#"> 
    <img src="#" /> 
<a/> 

<script> 
    jQuery(document).click(function(e) { 
     var target = $(e.target); 
     if (target.is("a") && target.has("img")) { 
      //Do what you want to do 
     } 
    }); 
</script> 
Смежные вопросы