jquery onclick click事件

时间:2010-10-29 14:41:17

标签: jquery onclick

我有div有一个onlcick事件。现在,当我单击div时,我想用jquery的.click属性更改其onlick函数。我可以动态地更改它,但是当我应用它时,新事件也会被触发。是否有任何解决方法,以便新的不被解雇但只是应用于具有新功能的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 om警告框 谢谢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 个答案:

答案 0 :(得分:5)

使用'one'功能

$('element').one('click',function()
{
    alert('old click handler');
    $(this).click(function(){
        alert('new click handler, yarrrr');
    });
});

答案 1 :(得分:2)

也许试试这个。

$('div').click(function(){
    $(this).unbind('click');
    $(this).click(function(){
        // new click function here
    });
});

答案 2 :(得分:0)

尝试使用绑定事件http://api.jquery.com/bind/

如果要删除上一个事件,请使用unbind事件: Best way to remove an event handler in jQuery?

答案 3 :(得分:0)

首先取消绑定旧功能。将新事件绑定到它应该可以解决问题。

您是说在将事件绑定到元素时也会触发该事件吗?