0

ajax 呼び出しを介してテーブルを動的に生成していますが、特定の列のすべての要素がホバー時にポップオーバーを表示するようにしたいと考えています。成功イベントに次のコードがあります。

strBtn1 = '<span data-trigger="hover" data-placement="right" data-content="testing popovers in a table" class="test22">test</span>'
$('#myReport').append('<tr><td>Column 1</td><td>' + strBtn1 + '</td></tr>');

次に、メインスクリプトでこれを試しました:

$(".test22").each(function () {
    $(this).popover();
});

テーブルは期待どおりに 15 行で生成されますが、「テスト」テキストにカーソルを合わせても何も起こりません。

また、機能する種類の「コントロール」もあります。

<span id="test11" data-trigger="hover" data-placement="right" data-content="testing popovers in a table">test</span>

これはヘッダーの HTML ファイルに直接あり、これはメイン スクリプトにあります。

$("#test11").popover();

したがって、ヘッダーには、ホバーするとポップオーバーが表示される「テスト」が表示されます。

アイデア?

4

2 に答える 2

1

テーブルにデータが入力された後$(".test22").each(function () { $(this).popover(); });にのみ が実行されていることを確認する必要があり ます。そうしないと、どのクラスも見つけることができません。

機能しているかどうかをテストするには、関数が実際に何回実行されているかを確認するために、各関数内にコンソール ログを配置してみてください。

コンソール ログが返されない場合は、反復する前に each を実行しようとしている必要があることを意味します。

もしそうなら、そのjQueryをそれぞれ関数に入れてから、ajax成功でその関数を呼び出すことをお勧めします。

于 2013-04-17T18:07:22.193 に答える
0

これを成功させると、問題が修正されました。

counter += 1;
tmpID = 'thisCell' + counter;
strBtn1 = '<span id="' + tmpID + '" data-trigger="hover" data-placement="right" data-content="testing popovers in a table" class="test22">test</span>'
$('#myReport').append('<tr><td>Column 1</td><td>' + strBtn1 + '</td></tr>');
$('#' + tmpID).popover();

次に、「each」ステートメントを完全に削除しました。

于 2013-04-17T18:10:09.627 に答える