Привязка jQuery к обработчику щелчка документа на объекте немедленно запускает обработчик щелчка документа

#jquery #click #document #bind #handler

#jquery #щелчок #документ #привязка #обработчик

Вопрос:

Я написал обработчик щелчков, который создает привязку к обработчику щелчков по документу следующим образом:

 $("#button").bind('click',function(){

    ....


    $(document).bind('click',function(){           
      console.log("document.click");
    });
});
  

Что я нахожу странным в этом, так это то, что срабатывает обработчик щелчка документа, и я немедленно получаю журнал консоли. Другими словами, я получаю журнал консоли при самом первом нажатии кнопки #. Это потому, что для перехода щелчка к документу требуется время, и я привязываюсь к событию щелчка документа непосредственно перед его попаданием туда? Есть ли какой-либо способ предотвратить это?

Ответ №1:

попробуйте это:

 $("#button").bind('click',function(e){
    e.stopPropagation();
    ....


    $(document).bind('click',function(){           
      console.log("document.click");
    });
});
  

Это предотвратит всплывающее событие