私はjQueryを使って次のようなことをしようとしています
if(jQuery('#id').click) {
//do-some-stuff
} else {
//run function2
}
しかし、jQueryを使用してこれを行う方法はわかりませんか?どんな助けも大歓迎です。
編集: #idがクリックされ、具体的にはクリックされていない場合、関数を実行しようとしています。次に関数2を実行しますか?つまり、実行する前に#idがクリックされたことを最初に確認する必要がありますfunction2
?
グローバル変数の使用は避け、.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.
}
var flag = 0;
$('#target').click(function() {
flag = 1;
});
if (flag == 1)
{
alert("Clicked");
}
else
{
alert("Not clicked");
}
クリックはイベントです。要素を照会して、クリックされているかどうかを尋ねることはできません。これはどう:
jQuery('#id').click(function () {
// do some stuff
});
その後、本当に必要な場合は、数秒ごとに// run function..
たぶん、あなたはこのようなものを探しています:
$(document).click(function(e)
{
if($(e.srcElement).attr('id')=='id')
{
alert('click on #id');
}
else
{
alert('click on something else');
}
});
event.srcElement
を使用して、クリックした要素へのポインターを取得できます。
したがって、クリックする要素のID属性を確認するだけです。
x、x回押すと、チェックボックスのyによる除算が行われ、jquery boxcheckになりますが、これはこの種のことを行うには無効な方法です。 .on()関数を使用する前に、これをご覧ください。
必要なのはこれだけです: http://api.jquery.com/click/
このシナリオでは「else」は適用されませんが、それ以外の場合は「クリックしなかった」ことを意味し、その場合は何もしません。
実際には、クリックしないことで要素をホバリングすることを意味するのではないでしょうか?
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
})