我有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) ;
它的工作没有警报。
答案 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)
首先取消绑定旧功能。将新事件绑定到它应该可以解决问题。
您是说在将事件绑定到元素时也会触发该事件吗?