web-dev-qa-db-ja.com

「その他をクリックした場合..」の実行方法

私はjQueryを使って次のようなことをしようとしています

if(jQuery('#id').click) {
    //do-some-stuff
} else {
    //run function2
}

しかし、jQueryを使用してこれを行う方法はわかりませんか?どんな助けも大歓迎です。

編集: #idがクリックされ、具体的にはクリックされていない場合、関数を実行しようとしています。次に関数2を実行しますか?つまり、実行する前に#idがクリックされたことを最初に確認する必要がありますfunction2

14
Tom

グローバル変数の使用は避け、.data()の使用を優先する必要があります

だから、あなたがするだろう:

jQuery('#id').click(function(){
  $(this).data('clicked', true);
});

次に、クリックされたかどうかを確認してアクションを実行するには:

if(jQuery('#id').data('clicked')) {
    //clicked element, do-some-stuff
} else {
    //run function2
}

お役に立てれば。乾杯

それを行う方法は、より高いスコープでブール値を使用することです。

var hasBeenClicked = false;
jQuery('#id').click(function () {
    hasBeenClicked = true;
});

if (hasBeenClicked) {
    // The link has been clicked.
} else {
    // The link has not been clicked.
}
9
James Long
 var flag = 0;

 $('#target').click(function() {
    flag = 1;
 });

 if (flag == 1)
 {
  alert("Clicked");
 }
 else
 {
   alert("Not clicked");
 }
2
Rajeev

クリックはイベントです。要素を照会して、クリックされているかどうかを尋ねることはできません。これはどう:

jQuery('#id').click(function () {
   // do some stuff
});

その後、本当に必要な場合は、数秒ごとに// run function..

2
therin

たぶん、あなたはこのようなものを探しています:

$(document).click(function(e)
   {
       if($(e.srcElement).attr('id')=='id')
       {
           alert('click on #id');
       }
       else
       {
            alert('click on something else'); 
       }
   });

jsfiddle

event.srcElementを使用して、クリックした要素へのポインターを取得できます。

したがって、クリックする要素のID属性を確認するだけです。

0
Dr.Molle

x、x回押すと、チェックボックスのyによる除算が行われ、jquery boxcheckになりますが、これはこの種のことを行うには無効な方法です。 .on()関数を使用する前に、これをご覧ください。

0
Freezingden

必要なのはこれだけです: http://api.jquery.com/click/

このシナリオでは「else」は適用されませんが、それ以外の場合は「クリックしなかった」ことを意味し、その場合は何もしません。

0
citizen conn

実際には、クリックしないことで要素をホバリングすることを意味するのではないでしょうか?

jQuery('#id').click(function()
{
    // execute on click
}).hover(function()
{
    // execute on hover
});

質問を明確にすると、よりよく理解できるようになります。

要素がクリックされていない場合は、クリックするまでsetIntervalを実行してプロセスを続行します。

var checkClick = setInterval(function()
{
    // do something when the element hasn't been clicked yet
}, 2000); // every 2 seconds

jQuery('#id').click(function()
{
    clearInterval(checkClick); // this is optional, but it will
                               // clear the interval once the element
                               // has been clicked on

    // do something else
})
0
MacMac