0

ボタン要素を2回クリックすると(ダブルクリックではなく、任意の時点で2回クリックするだけで)、初期化してリセットするときに、この関数を1回実行しようとしています。

<a href="#" onclick="popHover()">

$('.challenge_popover').popover()

var clicked = false

function popHover() {

        // I NEED THIS PART TO RUN ON THE FIRST CLICK
        if (clicked == false)
        {
        $('.challenge_popover').popover('destroy')
        }

         // AND THIS PART TO RUN ON THE SECOND CLICK
        $(document).live('mousedown', function(e) { 

            if (e.which == 1)  

            {
            $('.challenge_popover').popover()
            clicked = true
            }

        });

}
4

3 に答える 3

2

まず、そのようなインラインイベント処理を使用しないでください。アンカーをむき出しのままにします。

<a href="#">

次に、jQueryを使用してクリックハンドラーをアタッチします。

$('.challenge_popover')
    .popover()
    .on('click', popHover)

次に、クリックイベントハンドラー:

function popHover()
{
    // we keep the clicked state on the element itself
    var clicked = $(this).data('clicked');

    if (!clicked) {
        // action #1
        $(this).popover('destroy')
    } else {
         // AND THIS PART TO RUN ON THE SECOND CLICK
         $(this).popover();
    }
    // toggle clicked state
    $(this).data('clicked', !clicked);
}

3回目のクリックで何が起こるかわかりませんでした。アクション#1をもう一度実行する必要があると思います。

于 2013-03-15T04:05:08.073 に答える
0

.dblclick()非常に役立つjQuery を見てみましょう。

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

于 2013-03-15T03:52:30.587 に答える
0

次のようなものを探していますか

$('.challenge_popover').popover();

var clicked = false;

function popHover() {
        if (clicked) {
            $('.challenge_popover').popover('destroy')
        } else {
            $('.challenge_popover').popover()
        }

        clicked = !clicked;
}
于 2013-03-15T04:02:31.830 に答える