jQuery: другие ссылки внутри элемента div

0

Как я могу отделить все значки в элементе div?

В принципе, внутри div, у меня есть 4 вещи, которые нужно щелкнуть. Последнее было сделано для ссылки на весь щелчок элемента элемента. Средние элементы предназначались для конкретных щелчков значков. Но теперь, для конкретных щелчков значков, я хочу, чтобы клики подключались к их собственным ссылкам. Например, если один клик github png, он должен перейти к ссылке github, но теперь ссылка google Google перезаписывает его. Для того, что я нажимаю, я подключаюсь только к одной ссылке, которую я не намерен.

благодаря

<script type="text/javascript">
    $(document).ready(function(){
        $(".Apps").click(function(){
            window.open($(this).find("a").last().attr("href"));
            return false;
        });                             
    });
</script>

    <div class="Apps">
        <p><b>Web Dev Project 3</b><br><i>(coming soon)</i></p>
        <a href="https://github.com/" target="blank">
        <img src="https://github.com/apple-touch-icon-114.png" width="30" height="30"/></a> 
        <a href="http://google.com" target="blank">
        <img id="logo" src="http://cclub.slc.engr.wisc.edu/images/Under-Construction.gif" width="30" height="30"/></a>
        <a href="http://google.com" target="blank"></a>
    </div>

4 ответа

0
Лучший ответ

Исключить анкеры:

$(".Apps").click(function(e){
    if (! $(e.target).closest('a').length ) {
        window.open($(this).find("a").last().attr("href"));
        return false;
    }
});
  • 0
    @RobertKeenan ваш пустой тег <a> занимает места на экране, поэтому его нельзя щелкнуть.
  • 0
    Благодарю. Работает отлично
1

На самом деле нет такой концепции, как <a>, связанной с "содержащим элементом. Вместо этого, почему бы не просто "щелкнуть" события на <div> и отфильтровать те, которые не находятся на значках:

$('div.Apps').on("click", ":not(a img)", function() {
  window.location = "http://google.com";
});

То, как делается ваша разметка, трудно сказать, как будет область экрана, а не иконки внутри контейнера, но, вероятно, у вас есть отступы/поля или что-то в этом роде.

0

Если бы я был вами, я бы назначил разные идентификаторы для div и ссылки, а затем в определенных инструкциях по ссылке просто запретил поведение клика по умолчанию;

$(´#aLinkId´).on(´click´, function(){
    event.preventDefault();
    event.stopPropagation();
    window.open(whatever here);
});

$(´#aDivId´).on(´click´, function(){
    window.open(other whatever here);
});
0

Я это, что вы ищете?

http://jsfiddle.net/gespinha/WPsbb/2/

   $(document).ready(function () {
       $(".Apps").click(function () {
           window.open($(this).find("a").last().attr("href"));
           return false;
       });
       $(".Apps > a").click(function () {
           window.open($(this).attr("href"));
           return false;
       });
   });

Ещё вопросы

Сообщество Overcoder
Наверх
Меню