0

さて、ここに行きます...

関数を呼び出すことになっているボタンのあるページXYZがあります。

$(function() {


    $('#addgroupicon').on('click', function(event){

        addgroup();

    }); 

});


function addgroup()
{
$('#addgroupdialog').show();
}

// #addgroupdialogと#addgroupiconはロードされたページ内にあり、上記のコードはindex.htmlのヘッダーにロードした.jsファイル内にあります

現在、このページXYZを.load()関数を使用してdivにロードしていますが、ボタンをクリックしても何も起こりません。また、onclick ='javascript:addgroup();'を追加しようとしました ボタンに、成功しませんでした。

誰かが私を助けることができますか?

4

7 に答える 7

4

あなたは"on"正しい方法で使用していません。次のように使用する必要があります。

$(document).on("click", "#addgroupicon", function(event){
        addgroup();
}); 

あなたのシナリオを模倣する次のフィドルを参照してください、私は正確に思います:

http://jsfiddle.net/U4xZj/

理由を説明するために、jqueryのドキュメントはこれであまり良い仕事をしていないと思うので...基本的に、あなたがそれを使用していた方法で「オン」で何をしているのかを考えると:

$('#addgroupicon').on('click', function(event){

わかりました、jQuery、次のセレクター「addgroupicon」のイベントハンドラーを作成したいとおっしゃっています。Jqueryはすぐに向きを変え、「素晴らしい」状態になります。#addgroundiconには、それに一致するアイテムがまったくありません。離れて、私を悩ませないでください。ただし、最初に$(document)を使用して実行すると、jqueryは次のようになります。「ああ、わかりました。ドキュメントのクリックイベントハンドラーを作成できます。特定の要素がクリックを引き起こしたときにのみこのイベントを発生させたい場合は、次のように入力してください。セレクターであり、セレクターがソース要素と一致する場合は、コールバックを呼び出します。」わかる?

于 2012-04-18T05:17:18.637 に答える
2

これを試して。ページの読み込み後に要素を呼び出す場合は、.live()を使用する必要があります。

$(function() {


    $('#addgroupicon').live('click', function(event){

        addgroup();

    }); 

});
于 2012-04-18T04:46:43.690 に答える
0

私はあなたの質問を完全には理解live()していませんでしたが、あなたの問題が解決し、非推奨であるためにそれを使用していない場合。

これが進むべき道です、

$("body").on("click", "#addgroupicon", function(event){
    addgroup();
});

参照: http ://api.jquery.com/on/

于 2012-04-18T05:12:42.687 に答える
0
  1. 見たことがない$(function() {})、使ってみてください$(document).ready({})

  2. $(document).ready({})を使用すると、ページが読み込まれた後にjsコードが実行されますaddgroupicon。まだ存在しない場合、クリックイベントはそれにバインドされません。したがって、後で追加する場合は、追加addgroupicon後にそのコードを実行する必要があります。

  3. シンプルに使ってみませんか$('#addgroupicon').click(function(event){})

于 2012-04-18T04:50:26.467 に答える
0

.bind()の代わりにメソッドを使用できます.live()

$(function() {    
    $('#addgroupicon').bind('click', function(event){
        addgroup();
    }); 
});
于 2012-04-18T04:52:07.060 に答える
0

ボタンにはbind()の代わりにlive()を使用してみてください。

于 2012-04-18T04:54:03.063 に答える
0

なぜ.on()を使用しているのか不思議です。

$('#addgroupicon').click(function(){
    $('#addgroupdialog').show();
}); 
于 2012-04-18T08:03:03.263 に答える