0

Asp.Net Web アプリケーションのテスト中に、JQuery の "fadeIn/Out/Toggle/To" 属性は html レイヤー (レイアウト) でサポートされていますが、Panel のような asp: レイヤー (レイアウト) ではサポートされていないことに気付きました。

詳細については、以下のコードに従う必要があります。

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs"    Inherits="Animated1._Default" %>

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 <html xmlns="http://www.w3.org/1999/xhtml" >
 <head runat="server">
 <title>Untitled Page</title>
 <style type="text/css">
 #pnl1
 {
  width:100px;
  height:150px;
  background-color:red;
  border-style:solid;
  border-color:black;
  border-width:3px; 
 }
 </style>
<script src="jquery-1.9.1.js"   type="text/jscript" ></script>
    <script  type="text/jscript">
    $(document).ready(function(){
    $("#<%=Btn.ClientID%>").click(function(){
    $("#<%=pnl1.ClientID %>").fadeOut(3000);});
    });
    </script>

 </head>
 <body>
    <form id="form1" runat="server">
    <div>
        <asp:Panel ID="pnl1" runat="server">
        </asp:Panel>
        <asp:Button  ID="Btn" runat="server" Text="Mytext" />
    </div>
    </form>
 </body>
 </html>

上記のコードのように、パネルのような ASP コントロールはフェードアウト属性をサポートしていません。どうして?。

以下の html コードを使用した同じ例を見てみましょう。上記のコードで Css ID セレクターと Jquery を変更するだけです。

Css/Text コードは次のようになります。

#div1
{
  width:100px;
  height:150px;
  background-color:red;
  border-style:solid;
  border-color:black;
  border-width:3px; 
 }
     //And Jquery Function:
 <script src="jquery-1.9.1.js"   type="text/jscript" ></script>
 <script  type="text/jscript">
 $(document).ready(function(){
 $("#Btn").click(function(){
 $("#div1").fadeOut(3000);});
 });
 </script>

 //Rest Of Body Code is here.
  <body>
   <form id="form1" runat="server">
    <div>
     <div id="div1"></div>    
       <input type="button" value="fade the div" id="Btn"/>
     </div>
   </form>
  </body>

現在、div はフェードアウト属性をサポートしており、うまく機能します。

1.私の質問は、フェードアウトが asp:controls ではなく html で機能する理由です。

2.Jquery は asp:controls をサポートしていませんか?

3.または、Css/JQuery と Asp: Controls? の間に ID セレクターの結論があります。

最後に、上記の問題の解決策を示します。Css と Jquery の間で Asp コントロール ID のセレクターを処理する方法は完璧に機能します。

4

3 に答える 3

0

次のようになります。

$(document).ready(function(){
$("#"+"<%=Btn.ClientID%>").click(function(){
$("#"+"<%=pnl1.ClientID %>").fadeOut(3000);});
});
于 2013-03-23T11:28:47.683 に答える
0

コードに問題はありません。

<div>
    <div ID="pnl1"></div>
    <input type="Button" value="click" id="Btn"></input>
</div>


フィドルを作成しましたhttp://jsfiddle.net/gqBWv/
問題は、作成したクラス(css)である可能性があります。

ID (#pnl1) の css クラスを作成したため、ID が実行時に変更された場合、パネルには適用されません。
したがって、それを使用ClientIdMode="static"してもコントロールの ID は変更されません。

于 2013-03-23T12:51:05.603 に答える
0

scriptag を変更すると、次のようになります。

<script type="text/javascript">

また、このファイル/リンクも追加してください:

<script src="http://code.jquery.com/jquery-migrate-1.1.1.min.js"></script>

または単に:

<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.1.1.min.js"></script>
<script  type="text/javascript">
$(document).ready(function(){
$("#<%=Btn.ClientID%>").click(function(){
$("#<%=pnl1.ClientID %>").fadeOut(3000);});
});
</script>
于 2013-03-23T12:55:29.813 に答える