私はclick
このようにバインドしたdivを持っています:
$("#mydiv").one('click',function(){ ... });
アクションを1回だけ実行したいからです。bind
今、私はそれ をやり直したい
$("#mydiv").on('click',function(){ ... });
ただし、少なくとも初めてユーザーがクリックした場合に限ります。
どうやってやるの?
私はclick
このようにバインドしたdivを持っています:
$("#mydiv").one('click',function(){ ... });
アクションを1回だけ実行したいからです。bind
今、私はそれ をやり直したい
$("#mydiv").on('click',function(){ ... });
ただし、少なくとも初めてユーザーがクリックした場合に限ります。
どうやってやるの?
jQueryを使用してイベントに名前空間を付けることができます。
$('#mydiv').on('click.firstClick', function () {
// do stuff for the first time
$(this).off('click.firstClick'); // only removes this event
});
$('#mydiv').on('click', function () {
// stuff that always happens when you click
});
単に最初に何かを起こさせたいだけで、その後は毎回何かを起こさせたい場合:
$('#mydiv').click(function () {
// stuff that happens the first time you click
$(this).off('click');
$(this).click(function () {
// stuff that happens every time after this
});
});
最初のシナリオの例:http: //jsfiddle.net/75HWV/ 2番目のシナリオの例:http://jsfiddle.net/SbhY3/
$('#mydiv').one('click', function() {
// ...
// code here for action-A, on first click
// ...
$(this).on('click', function() {
// ...
// code here for action-B, on subsequent clicks
// ...
});
});