Я хочу знать, как привязать или отвязать конкретное событие от любого элемента.
$(document).ready(function(){
$("#div2").on("click",function(){
$("#div1").on("click",function(){
console.log("binded from div2");
});
});
$("#div1").on("click",function(){
console.log("main document click binded");
})
$("#div3").on("click",function(){
$("#div1").off("click");
});
})
#div1{
height:100px;
width:100px;
background-color:black;
color:white;
}
#div2{
height:100px;
width:100px;
background-color:white;
border:1px solid black;
}
#div3{
height:100px;
width:100px;
background-color:red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<div id="div1">div1
</div>
<br/><br/><br/>
<div id="div2">div2
</div>
<br/><br/><br/>
<div id="div3">off
</div>
Пожалуйста, проверьте прикрепленный фрагмент кода.
В нем я изначально привязал событие к div1. Затем я привязал другое событие к тому же div при нажатии на div2, поэтому теперь для щелчка div1 нужно запустить два события.
Теперь, когда я нажимаю на div3, чтобы отменить привязку события, метод .off отменяет привязку всех ранее прикрепленных событий к div1.
Мой вопрос
Как я могу отвязать (используя Jquery .off) только одно событие (скажем, второе событие) из div1 когда я нажимаю div3.
Я слышал, что мы можем назвать любой метод .on или .off из любой части приложения, но не знаю, как именно применить.