0

次のjQueryコードがあります。私がやろうとしているのは、ifステートメントを実行して$( "#div3")。slideToggle( "slow");かどうかを確認することです。存在します-もしそうなら、それを実行しないでください。基本的に、これから1つ上のレベルのコードは、ページビュー中にさまざまな回数実行されます。したがって、#buttonがクリックされた場合、親の「クリック機能」が複数回クリックされた後、#div3は何度も切り替わります。要素のバインドを解除するなど、他の回避策を見つけました。ただし、他のコードに影響を与えるため、さまざまな理由でそれや他の回避策を実行できません。私が示したコード内では、この単一のメソッドよりも多くのメソッドが実行されています。$( "#div3")。slideToggle( "slow");かどうかを確認する方法はありますか?現在のページにすでに存在しますか?ありがとう!

$('#button').click(function() {
$("#div3").slideToggle("slow");
});
4

3 に答える 3

1

これを使用して、関数が存在するかどうかを確認できます。

$("#div3").slideToggle == null

特に、イベントがバインドされているかどうかを確認できます。

$("#div3").data("events").click == null

または、次のように $('#div3') に新しいプロパティを追加することもできます。

$("#div3").clickEventHasBeenAdded = true;
if(!$("#div3").clickEventHasBeenAdded) {
  //Do something
}
于 2012-09-05T13:20:51.180 に答える
0

jQueryのone()メソッドを使用します。

$(document).one('click', '#button', function() {
    $("#div3").slideToggle("slow");
});
于 2012-09-05T15:34:46.680 に答える
0

これを試して

HTML

<div>
    <input type="submit" value="submit" id="button">
    <div id="div1">item 1</div>
    <div id="div2">item 2</div>
    <div id="div3">item 3</div>
    <script type="text/javascript">
      $('#div3').slideToggle("slow");
    </script>
</div>

JS コード

$('#button').click(function() {
    if($('#div3').slideToggle("slow")!=null){
       alert('true');  
    } else{alert('false');}
});

http://jsfiddle.net/e3aHc/3/

于 2012-09-05T13:30:11.947 に答える