2

ユーザーコントロール内にボタンがあります。ユーザーコントロールは、何らかのイベントによってプレースホルダーにロード(追加)されます。問題は、このボタンの単純なjqueryクリックイベントが機能していないことです。私は何が欠けていますか?セレクターはどのように見えるべきですか?

$('#mybutton').click(function () { alert("..."); }); 

または私はそれにトラバースする必要がありますか?

注:ユーザーコントロールコードビハインドを実行することができました。

どうもありがとう 。

4

4 に答える 4

4

これを試して:

$('#mybutton').live("click", function () { alert("..."); }); 

コントロール #mybutton は $(document).ready() が起動した後にページに追加されるため、jQuery がそのオブジェクトにハンドラーを追加する方法はありません。ライブとは、要素がいつどのように作成されても、その「クリック」イベントが 2 番目の引数として提供される関数にバインドされることを意味します。

ところで。#mybutton は、要素が標準の html オブジェクトであるか、レンダリング後に ID と NAME を mybutton として保持する ASP コントロールであると想定しています。そうでない場合は、 ASP コントロールの ClientIDMode を Static に置き換えるか、設定$("#mybutton")するか、クラス名でコントロールにアクセスしてみてください。$("#<%= mybutton.ClientID %>")

編集:

今後、イベント ハンドラを追加する方法として推奨されるのは、

$('#mybutton').on("click", function () { alert("..."); }); 
于 2011-04-24T00:21:02.547 に答える
1

私は同様の問題を抱えていて、この解決策を見つけました:jqueryファイルへのリンクと空のスクリプトタグを、次のようなコントロールを使用してページに配置しました(ヘッダータグ内):

<script type="text/javascript" src="../scripts/jquery-1.10.1.min.js" />
<script type="text/javascript" language="javascript"></script>

次に、ユーザー コントロール自体 (ヘッダー タグなし) で:

<script type="text/javascript" language="javascript">
$(document).ready(function() {
    //your function here.
});
</script>

お役に立てれば!

于 2013-06-18T18:46:59.957 に答える
0

プレースホルダー内にボタンを配置するときのaspxページ。クライアント ID が自動的に変更されました。したがって、セレクターで Jquery End を使用する必要があります。 http://api.jquery.com/attribute-ends-with-selector/

$ 記号を使用して動的コントロール ID を検索します。

$("input[id$=mybutton]").click(function () { alert("..."); }); 
于 2011-04-23T10:11:19.610 に答える
0

ID が mybutton と同じであることをクライアント側で確認する必要がありますか? ASP.NET は、すべてのユーザー コントロールのクライアント ID を属性に置き換えますrunat="server"

ソース コードを表示して、変更された ID を確認できます。

于 2011-04-23T10:06:51.760 に答える