0

私はこれに似たHTMLを持っています:

<div class="MainForm">
    <form name="FromName">
     <button name="Button1"></button>
     ...
     ...
    </form>
   <Div class="blackBox" style="visibility:hidden;"></div>
   <Div class="SubFotm" style="visibility:hidden;"></div>
</div>

これで、スクリプトでボタン クリックのトリガーを適切に見つけることができますが、クローゼットのブラックボックスだけをターゲットにして可視化することはできません。

現在私はやっています:

if (PButtonName=="Fermer") {
$(this).closest("div .ProfileForm").remove(); // Closing Profile Form
}  else if (PButtonName=="plusAdresse") {
alert('In');
      $(this).closest("div .BlackBox").css("visibility","visible");  
}

アラートを表示することはできますが"In"、BlackBox を変更することはできません

$(this).closest("div .BlackBox").css("visibility","visible"); 

為に :

 $("div .FormBlackBox").css("visibility","visible"); 

表示されますが、ドキュメント内のすべてのブラック ボックスも表示されます。

4

2 に答える 2

0

上記のHTMLなどを使用している場合は、親への参照を使用して行います。

それ以外の:

$(".MainForm").closest("div .BlackBox").css('visibility','visible');

使用する

$(this).parents('.MainForm').children('.BlackBox').css('visibility','visible');

これは、複数のMainForm divがあり、それらすべてにBlackBoxクラスの子が1つあることを前提としています。

ここに例があります。

于 2013-02-14T20:04:03.683 に答える
0

あなたが行ったことの代わりに、display:none;あなたのdivにスタイルを追加して、いつでもそれらを表示してください.したがって、以下のようにこれを行うことができます:

<div class="MainForm">
    <form name="FromName">
     <button name="Button1"></button>
     ...
     ...
    </form>

   <div class="blackBox" style="display:none;"></div>
   <div class="SubFotm" style="display:none;"></div>
</div>

そして、あなたのスクリプトで

if (PButtonName=="Fermer") 
{
      $(".MainForm").closest("div .ProfileForm").remove(); // Closing Profile Form
}  
else if (PButtonName=="plusAdresse")
 {
     alert('In');
     $(".MainForm").closest("div .BlackBox").show();  
}

そして、ここではSwitch case代わりにループを使用することをお勧めします。

于 2013-02-14T19:29:56.953 に答える