html:
<ul>
<li><input type="submit" id="myId" value="someVal"/>
</ul>jQuery
$('ul').find('input[type="submit"]').click(function{
alert('nasty alert')
$(this).attr('id','newId');
});
$('input#newId').click(function(){
$(this).hide();
});好的,所以我的意图是在单击一次之后更改id,然后按下按钮来做其他事情(隐藏)。我也尝试过live()。在firebug中,id看起来已经改变了,但我第二次点击按钮时会触发同样的警告(“讨厌的警告”)。还有一些我使用的strange...if (),在鼠标右键上单击消失的按钮(就像它应该的那样)。有什么建议吗?谢谢
发布于 2009-10-24 08:55:31
您基本上将一个click事件处理程序附加到同一个输入上两次。
没有理由附加两个事件处理程序,我已经更新了代码,所以使用了一个变量来跟踪。
编辑:修复了语法错误,现在使用了.data
<ul>
<form>
<input type=submit value=go>
</form>
</ul>
<script src=http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js></script>
<script>
$('ul').find('input[type="submit"]').click(function() {
if ( !$(this).data('_clicked') ) {
alert('nasty alert')
$(this).attr('id','newId');
$(this).data('_clicked', true);
} else {
$(this).hide();
}
return false;
});
</script>https://stackoverflow.com/questions/1616629
复制相似问题