0

現在、onclickでダイアログボックスを開くjQuery関数があります。これにより、ユーザーは質問に回答できます。

私が抱えている問題は、複数の質問がある場合、機能は最初に作成されたボタンでのみ機能することです。

PHPコード

$C = count($array2);
    for($i=0; $i < $C; $i++)
    {
        echo "<button id='reply'>Reply</button";
    }

jQuery

$(function() {
    var name = $( "#name" ),
    allFields = $( [] ).add( name ),

    $( "#form" ).dialog({
        autoOpen: false,
        height: 200,
        width: 700,
        modal: true,
        buttons: {
            Cancel: function() {
                $( this ).dialog( "close" );
            }
        },
        close: function() {
            allFields.val( "" ).removeClass( "ui-state-error" );
        }
    });

    $( "#reply" ).click(function() {
        $( "#form" ).dialog( "open" );
    });
});

私が欲しいのは、ダイアログボックスが開き、ユーザーがコメントに返信できるようにするこれらのボタンのいずれかをクリックすることです。

前もって感謝します。

デイブ。

4

2 に答える 2

0

まず、ID は一意であることを意味します。reply代わりにクラスとして使用することを検討してください。

echo "<button class='reply'>Reply</button>";

これで、コードは次のように動作するはずです:

$(".reply").click(function() {
    $( "#form" ).dialog( "open" );
});

次に、不必要なイベント ハンドラーを追加しないように、親への委任を検討することをお勧めします。たとえば、これらの返信ボタンがすべて要素に含まれている#container場合は、次のように使用できます。

$('#container').on("click",".reply",function(){
    $( "#form" ).dialog( "open" );
});
于 2012-12-10T11:45:47.373 に答える
0

返信ボタンには、Id の代わりに Class を使用する必要があります。これらのコードを試してください:

.....

for($i=0; $i < $C; $i++)
{                                   
     echo "<button class='reply'>Reply</button";
}

.....

$( ".reply" ).click(function() {
      $( "#form" ).dialog( "open" );
});
于 2012-12-10T11:46:08.800 に答える