2017-07-17 10 views
0

テーブルセルでアイコンがクリックされたことを示すために定義されたブートストラップ3ポップオーバーがあります。表の行は、ページのロード時に動的に挿入されます。私のjQueryはAjaxコールを使用してポップオーバーの内容を取得します。ポップオーバーが表示されると、タイトルが空になります。あなたが見ることができるようにブートストラップポップオーバーのデータ内容を設定できません

<td>1-Year Individual <a tabindex="0" class="history-info" data-trigger="focus" data-memberid="123" data-toggle="popover" data-placement="left" data-title="Membership history for Fred Smith" data-html="true" data-content=""><span class="glyphicon glyphicon-info-sign" style="color:grey;"></span></a></td> 

、データ・コンテンツ属性が空に設定されています:

はここに関連するHTMLです。

ここに私のjavascriptがあります。

$("#member-table .history-info").on("show.bs.popover", function() { 
var memberid=$(this).data("memberid"); 
$.ajax({ 
    url: "memberships-GetHistoryInfo.php", 
    type: "GET", 
    data: {MemberID: memberid}, 
    datatype: "html", 
    async: false, 
    success: function (data) { 
     $(this).data("content",data); 
    } 
}); 

})

私は$(この).dataセクション( "コンテンツ"、データ)の後に、アラートを右に確認しています。データコンテンツは期待値に設定されていますが、タイトル以外のポップオーバーには何も表示されません。

セレクタ内のmember-tableは、タイトル以外の問題のテーブルのIDです。

答えて

0

jquery.data() APIは、要素のデータを設定しますが、jQueryによって抽象化され、DOMの上のレイヤーに位置します。 $(this).attr('data-content', data);と属性を追加することを検討します。

+0

残念ながら、残念ながら、それは違いはありませんでした。 – Pete

+0

ああ、私はポップオーバーのためのブートストラップのドキュメントに行き、ブラウザのコンソールで例の要素をjQueryで取得し、 'data-content'属性を' attr() 'で変更し、ボタンをクリックして内容を何'show.bs.popover'が起動する前にコンテンツを設定する必要があるかもしれません。 http://getbootstrap.com/javascript/#popoversにある '.popover( 'show')'メソッドのドキュメントから、それがコンテンツをチェックする点です。代わりに、ページの読み込みで、ajaxを介してすべてのポップオーバーのデータを取得し、その結果をループして、すべての行にデータ属性を追加できますか? – sauntimo

+0

あなたが与えたリンクでjQueryポップオーバーの例が見つかりませんでした。私はもともと、ページのロード時に各アイコンのデータコンテンツを作成していましたが、テーブルの行数と必要なdbアクセスのためにパフォーマンスはあまり良くありませんでした。私の希望は、アイコンをクリックしたときにのみ、データコンテンツを動的に作成することで、パフォーマンスを向上させることです。 – Pete

関連する問題