0

これは、javascript が埋め込まれた ascx ページです。

ビューが変更されたときに、div タグ (テスト目的で div2) でラップしたビューを強調表示したいと思います。

現在、ビューは正常に変化していますが、ハイライトを機能させることができません。

私のjavascriptに何か問題がありますか、それとも他に何か不足していますか??

ありがとう

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>



<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:MultiView ID="MultiView1" runat="server">

<asp:View ID="View1" runat="server">
   <p>This is View 1</p>
   <asp:Button ID="Button1" runat="server" Text="Next" onclick="Button1_Click" />
 </asp:View>


 <asp:View ID="View2" runat="server">
    <div id="div2" style="height:auto; width:auto;">
    <p>This is View 2</p>
    <asp:Button ID="Button2" runat="server" Text="Previous" 
        onclick="Button2_Click" />  
    <asp:Button ID="Button3" runat="server" Text="Next" onclick="Button3_Click" /> 
    </div>

    <script type="text/javascript">
    $(document).ready(function () {
    $("#Button1").click(function () {
    $("#div2").effect("highlight", {}, 3000);
    });
    });
    </script>

 </asp:View>


 <asp:View ID="View3" runat="server">
    <p>This is View 3</p>
    <asp:Button ID="Button4" runat="server" Text="Previous" 
        onclick="Button4_Click1" />

 </asp:View>

 </asp:MultiView>

  </ContentTemplate>
 </asp:UpdatePanel> 

コードビハインド:

namespace Multiview1.Multiview1
{
public partial class Multiview1UserControl : UserControl
{
    protected void Page_Load(object sender, EventArgs e)
    {
        MultiView1.SetActiveView(View1);
    }

   protected void Button1_Click(object sender, EventArgs e)
    {
        MultiView1.SetActiveView(View2);
        UpdatePanel1.Update();
    }

    protected void Button3_Click(object sender, EventArgs e)
    {
        MultiView1.SetActiveView(View3);
        UpdatePanel1.Update();
    }

    protected void Button2_Click(object sender, EventArgs e)
    {
        MultiView1.SetActiveView(View1);
        UpdatePanel1.Update();
    }

    protected void Button4_Click1(object sender, EventArgs e)
    {
        MultiView1.SetActiveView(View2);
        UpdatePanel1.Update();
    }
  }
 }
4

2 に答える 2

4

問題は、複数のバージョンの jquery をロードしているようです。

問題を示すためにフィドルを設定しました。2番目のjqueryライブラリがコメントアウトされている場合、そうでない場合は正常に機能し、まったく機能しません。

ジャスフィドル

于 2012-07-06T13:05:25.773 に答える
1

このようにボタンクリックを使用してください

$("#<%=Button1.ClientID%>").click(function () {
    $("#div2").effect("highlight", {}, 3000);
   });
});

それはasp.netコントロールです。

編集:あなたは間違った方向に進んでいます.jqueryクリックに問題はありません.ここで問題はあなたのdivタグがupdatepanel内にあることです.このリンクをチェックしてください.

于 2012-07-06T13:08:33.470 に答える