jqueryバインドイベント
質問
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();
});
ok、したがって、私の意図は、1回クリックしてからIDを変更し、次にボタンを押して別の操作(非表示)を行うことです。私もlive()で試しました。 firebugでは、IDが変更されたように見えますが、ボタンを2回クリックすると同じアラート( 'nasty alert')がトリガーされます。そして奇妙な...私がlive()を使用する場合、マウスを右クリックしてボタンを消します(そうするべきです)。疑いはありますか?ありがとう
解決
基本的に、同じ入力に click
イベントハンドラーを2回アタッチしています。
2つのイベントハンドラーをアタッチする必要はありません。コードを更新し、変数を使用して追跡するようにしました。
編集:構文エラーを修正し、 .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>
所属していません StackOverflow