0

次のように、親 div 内のすべての div にマウスダウン ハンドラーを追加しました。

$productContainer.children(".button").on('mousedown', function(){
    var index = $(this).index();
    console.log("Clicked button at " + index);
    // this doesnt work
    $(this).removeAttr('mousedown');
});

ボタンがクリックされた後、その特定の div に対して mousedown ハンドラを削除したいと思います。それ、どうやったら出来るの?を削除してattr mousedownもうまくいかないようです。

4

3 に答える 3

3

off次の方法を使用します。

$productContainer.children(".button").on('mousedown', function(){
    var index = $(this).index();
    console.log("Clicked button at " + index);
    $(this).off('mousedown');
});

詳細: http://api.jquery.com/off/

one代わりにメソッドを使用することもできます。最初にトリガーされたときに、イベント ハンドラーが自動的に削除されます。

$productContainer.children(".button").one('mousedown', function(){
    var index = $(this).index();
    console.log("Clicked button at " + index);
});

詳細: http://api.jquery.com/one/

于 2013-10-29T15:43:39.203 に答える
1

use.off 説明: イベント ハンドラーを削除します。

$productContainer.children(".button").off('mousedown');
$productContainer.children(".button").on('mousedown', function(){
    var index = $(this).index();
    console.log("Clicked button at " + index);
    // this doesnt work
    $(this).removeAttr('mousedown');
});
于 2013-10-29T15:44:08.967 に答える
1

それ以外の :

$(this).removeAttr('mousedown');

使用する :

$(this).unbind('mousedown');

また

$(this).off('mousedown');
于 2013-10-29T15:44:10.263 に答える