0

この単純な例が機能しない理由が本当にわかりません:Sスクリプトを含むWebアプリケーションがあります:

function myAlert() {    
    $("#Button1").click(function () {
        alert("Hello world!");
    });
}

私のASPページには、この簡単なコードがあります

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Graph.aspx.cs" Inherits="WebApplication.Graph" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">  
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<asp:Button ID="Button1" runat="server" Text="Button" Width="100px"/>
</asp:Content>

最後に、スクリプトを cs に登録します。

   protected override void OnPreLoad(EventArgs e)
   {
        Page.ClientScript.RegisterClientScriptInclude("jQuery",
                        ResolveUrl(@"Scripts\jquery-1.4.1.js"));
        Page.ClientScript.RegisterClientScriptInclude("jMyAlert",
            ResolveUrl(@"Scripts\MyAlert.js"));
        // check if the start up script is already registered with a key
        if(!Master.Page.ClientScript.IsStartupScriptRegistered("jMyAlert"))
        {
            // since it is not registered, register the script
            Master.Page.ClientScript.RegisterStartupScript
                (this.GetType(), "jMyAlert", "myAlert();", true);
        }
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        ScriptManager.RegisterStartupScript(this, this.GetType(), "jMyAlert", "myAlert()", true);
    }

これの何が問題なのかわかりません。aspx 内に直接 scrit を含めようとしましたが、何もしませんでした。次に、単純な html ページを試してみると、問題なく動作します。

自分のページで jQuery を使用してプロット ライブラリを使用したいので、このような単純な例で多くの問題が発生する場合、成功するにはほど遠いです...笑

4

2 に答える 2

1

使用しているブラウザ内のデバッグコンソールをチェックして、「$」が未定義かどうかを確認してください。完全なASP.NETアプローチを使用すると、jqueryが欠落しているようです。

于 2013-02-09T03:42:47.037 に答える
0

そのボタンのIDは#Button1、マスターページを使用しているためではありません。ソースを表示して、私が何を意味するかを確認してください。

これを解決するには、JavaScriptで実際のIDを確認できる必要があります。

あなたのPage_Load方法でこのようなもの:

ScriptManager.RegisterClientScriptBlock(this, this.GetType(),
    "Button1Id", string.Format("var Button1Id = '{0}';", Button1.ClientID), true);

あなたのページに以下を作成します:

<script type="text/javascript">
//<![CDATA[
var Button1Id = 'Button1';//]]>
</script>

これは、myAlertメソッドが次のようになる必要があることを意味します。

function myAlert() {
    $("#" + Button1Id).click(function () {
        alert("Hello world!");
    });
}
于 2013-02-09T03:45:51.563 に答える