jquery onclick click event - PullRequest
       0

jquery onclick click event

3 голосов
/ 29 октября 2010

У меня есть div, у которого есть событие onlcick.Теперь, когда я нажимаю div, я хочу изменить его функцию onlick с атрибутом .click jquery.Я могу изменить это динамически, но когда я применяю это, новое событие также запускается.Есть ли обходной путь, чтобы new не запускался, а просто применялся к div с новой функцией?Вот то, что я пытаюсь сделать

У меня есть div

<script type="text/javascript">

function testMe(data)
{
   alert(data);
   $('#testMe').unbind('click');
   $('#testMe').click(function(){ testMe('2');  });
}

</script>
    <div id='testMe' onclick='testMe(1)' >click on me, I will disappear.</div>

, когда я выполняю вышеуказанный код, я все еще получаю значение 1 окно предупреждения СПАСИБО EveryOne

Такжепопробовал приведенный ниже код, но он не работает для меня

 function testMe(data)
{
   alert(data);
   $('#testMe').unbind('click');
   $('#testMe').click( testMe(2) );
}

Хотя код обновляет событие onlick с 'testMe (1)' до 'testMe (2)', но оно постоянно сообщает значение 2.Обойти эту проблему можно с помощью традиционного кода сценария JS:

 document.getElementById('testMe').onclick =  testMe(2) ;

И он работает без предупреждений.

Ответы [ 4 ]

5 голосов
/ 29 октября 2010

используйте функцию ' one '

$('element').one('click',function()
{
    alert('old click handler');
    $(this).click(function(){
        alert('new click handler, yarrrr');
    });
});
2 голосов
/ 29 октября 2010

возможно попробуйте это.

$('div').click(function(){
    $(this).unbind('click');
    $(this).click(function(){
        // new click function here
    });
});
0 голосов
/ 29 октября 2010

сначала отмените старые функции. Чем привязать новое событие к нему, тот добьется цели.

Вы имеете в виду, что событие также запускается, когда вы связываете его с элементом?

0 голосов
/ 29 октября 2010

Попробуйте использовать событие связывания http://api.jquery.com/bind/

Если вы хотите удалить предыдущее событие, используйте событие unbind: Лучший способ удалить обработчик событий в jQuery?

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