13

今日、私は私にとって非常に紛らわしいものを発見しました。jquery経由でs.thを隠そうとしました...最初にこれを使用しようとしました

$(".specificdiv li:nth-child(3)").click(function(){
    $(".anotherdiv").hide();
})

....しかし、それは動作しません。

しばらくして、次のように試しました。

$(".specificdiv li:nth-child(3)").mousedown(function(){
    $(".anotherdiv").hide();
})

クリックではなくマウスダウンが機能する理由を誰かに説明してもらえますか? 調べるのは素晴らしいだろう

編集

anotherdivを編集しました。

4

2 に答える 2

21

考えられる理由:

  1. イベントはmousedownに実行されるため、先着順です。 click
  2. 要素にはすでにclickイベントが含まれている可能性があります。これにより、これが発生しなくなります。たとえば、関数が最初に実行され、return falseステートメントが含まれているとします。

mousedownこの要素に割り当てられていないを使用しているため、競合は発生しません。完全なコードを投稿しなかったため、これが理由である可能性があります。お気軽に修正してください。:)

小さなメモで$(".anotherdiv").hide();は、最初のコードと$(".another").hide();2番目のコードにdiv、クラスにが含まれていません。問題ありますか?

于 2013-02-12T18:40:34.937 に答える
1

実際には、ボタンを離さなくても、ボタンを押したときに mousedown イベントがトリガーされます。クリックは、ボタンを上げたときのマウスアップのようなものです。

あなたのコードには、「.anotherdiv」と「.another」がありますが、それはあなたのエラーでしょうか?

于 2013-02-12T18:43:58.997 に答える