2016-04-26 15 views
0

表示/非表示の列をユーザーが選択できるようにテーブルを作成しようとしています。私のサイトで既に使用しているJQueryは、JQuery Mobileの "反応テーブル"ウィジェット、特に "カラムトグル"の変種を介してこれを提供しています。JQueryモバイル応答テーブルが、更新後でも動的に作成されたテーブルで機能しない

テーブルにページを置くと完全に機能するようになるので、ファイルがインポートされ、コードが正しいことがわかります。問題は、このテーブルがAjax呼び出しの結果であるため、$ .post()関数の内部に構築され、一度構築されたページに配置されることです。この部分もテーブルを表示するためにうまく動作します。しかし、表が示すように、それは応答しません。少なくとも、それはすべての重要な "列..."リンクが欠けています。の$ .post()で、私はこのようなテーブルを構築し、それに追加:私はこの問題を考えている resultsTable = $("<table id='resultsTable' data-role='table' data-mode='columntoggle' data-column-btn-text='Show/Hide Columns...' class='ui-responsive'></table>");

をjqueryのモバイルは、いくつかのためにそれを修正するために、テーブルの作成にフック、またはことができないということです他の理由でそれが存在することを知らない。したがって私は$ .postの終わりの直前にそれをリフレッシュしようとしました: $("#resultsTable").table("refresh");

これは効果がありません。私は、別の方法で 'リフレッシュ'メソッドを呼び出すと、他の人がこの問題を抱えているかどうかを見て、それを移動しようとしました。これまでの結果はありません。私は解決策が単純でなければならないことを知っていますが、私はそれを見つけることができません。私はテーブルを動的に生成することや、反応するテーブルをたくさん見つけることができますが、それらを一緒に使うことについては何も見つかりません。私は何か提案を感謝します。前もって感謝します。

+2

これまでに試したことがあるように、サンプルコードを追加することをお勧めします。また、あなたが 'jquery-ui'のためにこれをなぜタグ付けしたのか不明です。 – Twisty

+0

あなたは 'resultsable =" table id = 'resultsTable'を試してみましたか?data-role = 'table' data-mode = 'columntoggle' data-column-btn-text = '列の表示/非表示を切り替える' class = 'ui -responsive '> ";' –

+0

Cesar、私は元々文字列を使用していましたが、それは違いはありませんでした。このようにすれば、テーブルの部分に追加することができ、コードをはるかに明確に保ちやすくなります。さらに、私は$( "")の方法に切り替えることでJQueryに何かを与えるかもしれないと考えました。 @ツイスト、あなたはどのようなコードですか?それ以外のものは画面上に表示されるテーブルを構築するだけです。ありがとう。 – AH16

答えて

1

、コンテナにenhanceWithin()を呼び出す:

$("#tableCont").empty().append(resultsTable).enhanceWithin(); 

DEMO

テーブルを作成するには、デモのボタンをクリックします。

+0

ああ、やった! resultsTable.table()の呼び出しを取り除かなければなりませんでしたが、リンクが現れ、カラムが隠れることがありました。助けてくれてありがとう! – AH16

1

.table()をHTMLに追加する前にそれを割り当てることをお勧めします。このようにして

var resultsTable = $("<table>", { 
    'id':'resultsTable', 
    'data-role':'table', 
    'data-mode':'columntoggle', 
    'data-column-btn-text':'Show/Hide Columns...', 
    'class':'ui-responsive' 
}); 
resultsTable.table(); 
resultsTable.appendTo("#results"); 

、要素が追加される前に応答するように設定されている:あなたの$.post()成功機能で

は、それはのように見えることがあります。私はあなたの代わりに.table('rebuild')を試みるかもしれないと思うhttps://api.jquerymobile.com/table/

はまた、refresh.table()のメソッドまたはイベントではありません。コンテナDOM要素にテーブルを追加した後

関連する問題