0

プロジェクト メニューにラウンドアバウト スクリプトを使用しています。メニュー項目をクリックした後、いくつかのアクションがあります。この選択したアイテムを2回クリックした後に、このアクション/機能を起動したい。これを行う方法を手伝ってもらえますか?

これは私の機能の始まりです:

$('.main_content ul li').bind({click: function(){
4

4 に答える 4

1

API:http ://api.jquery.com/dblclick/

イベントハンドラーを「dblclick」JavaScriptイベントにバインドするか、要素でそのイベントをトリガーします。

それがあなたの大義に役立つことを願っています:)

コード

$('.main_content ul li').dblclick( function(){

});
于 2012-07-31T08:18:57.613 に答える
1

編集これを無視して、Tats_innitの答えを使用してください。私は恥ずかしそうにjQueryのdblclick機能に気づいていませんでした。

(function(){
    var state = false;
    $('.main_content ul li').click(function(){
        if( state === false ) state = true;
        if( state ){
            state = false;
            //do other stuff here
        }
    });
});
于 2012-07-31T08:19:47.063 に答える
1

1 つの方法は、最初のクリックを手動でキャンセルすることです。

$('.main_content ul li').click(function() {

    if(!$(this).data('clicked-once')) {
        $(this).data('clicked-once', true);
        return; // cancel first execution
    }

    // handler body here

});

デモ

もう 1 つのone方法は、リスナーをバインドするメソッドを使用することです。

$('.main_content ul li').one('click', function() {
   $(this).click(function() {
      // handler body here
   });
});

デモ

もちろん、聞き取ろうとしているのが実際のダブルクリックである場合は、dblclickTats_innit が示唆するようにイベントを使用する必要があります。つまり、2 回連続してクリックしたときにのみイベントを発生させたい場合です。ダブルクリックでは、3 回のクイック クリックで関数が 1 回だけ起動され、上記のソリューションでは 2 回起動されます。doubleclick を使用すると、2 回のクリックの間に多少の遅延が生じても関数はまったく起動せず、上記のソリューションでは 1 回起動します。

于 2012-07-31T08:30:51.413 に答える
0

jQuery のトグル イベント ヘルパーを使用して、1 つの関数のみをバインドできます。行の何か:

function iWantThis2bCalled()
{
}

$("#someId").toggle(function(){}, iWantThis2bCalled);
于 2012-07-31T08:24:51.327 に答える