2016-07-04 3 views
1

У меня есть изображение, на котором я хочу, чтобы отключить событие нажатия, поэтому я использовал UNBIND события, как показано нижеПочему отвязать событие на изображении не работает

$('#myimage').unbind("click"); 

Но не могли бы вы, пожалуйста, дайте мне, почему нажмите событие все еще работает?

Это мой код

$(document).ready(function() { 
    $('#myimage').unbind("click"); 
}) 

$(document).on('click', ' #myimage', function (event) { 
    alert('i am called'); 
}); 

Это моя скрипка

http://jsfiddle.net/ygbxdspc/5/

+0

Вы добавляете обработчик кликов в 'document', а затем пытаетесь удалить его из изображения Эльф. – Andreas

+0

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

ответ

3

Вопрос в скрипку ваш блок кода уже работает в document.ready обработчика (в связи с настройками вы выбрали), так что unbind() вызывается перед событием, поэтому no event is removed.

Чтобы устранить реальную проблему, вам нужно использовать делегированные форму метода off(), как вы изначально прилагается делегированного обработчик событий с помощью on(), как это:

<script> 
    $(document).ready(function() { 
     $(document).off('click', '#myimage'); 
    }) 

    $(document).on('click', '#myimage', function(event) { 
     alert('i am called'); 
    }); 
</script> 

Working example

Заметим, что в настройки этой скрипты JS-код установлен как «Нет обертывания» в <head>.

+0

Большое спасибо, очень полезно – Pawan

Смежные вопросы