1

編集:数人が私の質問にすぐに答えました。#buttonclose を .buttonclose に変更するだけで解決されたのは、私が犯した明らかな間違いでした。タイムリーな回答に感謝します。

それぞれボタン (#buttonclose) を持つ 3 つの div (#window1、#window2、および #window3) があります。それぞれのボタンをクリックしたときに各 div をフェードアウトする方法を見つけようとしています。

これまでのところ、これは私が関数のために持っているものです:

$('#buttonclose').click(function(){
$('#window1').fadeOut(300);
});

これは #window 1 では完全に機能しますが、#window2 と #window3 で機能させる方法がわかりません。

うまくいけば、あなたは私を助けることができます. 本当に感謝します!ありがとう!

4

2 に答える 2

1

まず、ID は要素の一意の識別子である必要があるため、id を持つ要素を複数持つことはできませんbuttonclose。あなたの場合、おそらく代わりにクラスにすることができます。

次に、DOM 構造に応じて、次のようなことができます。

$(".buttonclose").on("click", function () {
   $(this).parent().fadeOut(300);
});

デモ

これには、非表示にする要素がボタンの直接の親である必要があるため、ニーズに合わせて多少変更する必要がある場合があります。

要素がより深くネストされている場合.closest()、非表示にする適切な祖先を見つけるために、次のようなメソッドが役立つ場合があります。

要素がボタンの祖先でない場合は、ボタン要素の属性を使用するなど、非表示にする要素にボタンを関連付け、要素data-*の ID などの値を保存する別の方法が必要です。閉じます。次に、ボタンがクリックされたときにその値を読み取り、その方法で適切な要素を選択します。

于 2013-01-14T21:54:41.533 に答える
0

次のような HTML を想定します。

<div id="window1">This is window 1 <span class="closeButton">Close</span> 
</div>
<div id="window1">This is window 2 <span class="closeButton">Close</span>
</div>
<div id="window1">This is window 3<span class="closeButton">Close</span>
</div>

ボタンの親にアクセスして、それをフェードするだけです。

$(".closeButton").button().click(function () {
  $(this).parent().fadeOut(300);
});

このフィドルを参照してください: http://jsfiddle.net/q6sQX/2/

于 2013-01-14T21:56:37.530 に答える