Справка по jquery - PullRequest
       29

Справка по jquery

0 голосов
/ 27 октября 2009

У меня есть такая настройка:

    <div id="container">
       <div id="close">Close</div>
    </div>

Тогда в моей JQuery у меня есть это:

$("#container").live("click",function(){
   changeTabs();
});

$("#close").live("click", function(){
   closeTabs();
});

Проблема в том, что при нажатии на закрывающий div запускаются оба события. Я предполагаю, что это потому, что второй div перекрывает первый. Так как я могу отменить или остановить запуск первого события?

Ответы [ 4 ]

4 голосов
/ 27 октября 2009

Выезд event.stopPropagation()

С Документация jQuery :

Останавливает всплывание события в родительские элементы, предотвращающие любого родителя обработчики от уведомления о событие.

В вашем случае это может выглядеть как

$("#close").live("click", function(evt){
   evt.stopPropagation();
   closeTabs();
});
0 голосов
/ 27 октября 2009

Хорошо, так что метод, который работал, находился под функцией closeTabs (), которую я возвратил false; и это, казалось, исправило это

0 голосов
/ 27 октября 2009

Я не уверен, почему вы хотите использовать div в качестве события закрытия клика, можете ли вы использовать вместо него кнопку ввода?

<div id="container">
       <input type="button" id="close" value="Close"/>
</div>

$("#container").live("click",function(){
    changeTabs();
});

$("#close").live("click", function(){
    closeTabs();
    return false;
});
0 голосов
/ 27 октября 2009

Это может сработать:

$("#container:not(#close)").live("click",function(){
   changeTabs();
});

$("#close").live("click", function(){
   closeTabs();
});

Использование not selecto r.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...