埋め込みコードを使用していると仮定しています行のメタデータ、ア・ラ...
<tr data-foo="additional data here" data-bar="even more data">…</tr>
そして、あなたのJavaScriptで、ちょっとした魔法が.live()
と呼ばれる:
$('#your_table .show_dialog').live('click', function(){
var data_for_dialog = {
foo: $(this).closest('tr').attr('data-foo'),
bar: $(this).closest('tr').attr('data-bar')
}
show_dialog(data); // your own code to show the dialog
});
<a>
タグには、「show_dialog」というクラスがあります。属性の数が多い場合や、改行を含む必要のあるデータが含まれている場合、これはあまり効率的ではありません。これを改善するにはiterating over each attributeに<tr>
を定義し、自動的にdata-
で始まる属性を含めます。しかし、この質問の範囲外です。限りダイアログを示すように、このようなものは十分であろう
:
function show_dialog(data) {
var $dialog = $('#dialog');
for(var attr in data) {
$dialog.find("." + attr).html(data[attr]);
}
$dialog.show();
}
<div id="dialog">
<p class="data-foo"></p>
<p class="data-bar"></p>
</div>
テストされていないのですが、十分に何が起こっているかを示しなければなりません。
注:HTML5では、「data-」という接頭辞が付いている限り、カスタム属性を定義することができます。したがって、上のすべての箇所に表示されます。
オンデマンドでただ1つのダイアログを作成し、関連する行に基づいて正しい情報を入力するのはなぜですか?このような_x_ダイアログを作成するのは非常に非効率的です。 –
あなたはダイアログを言うときあなたが考えるもののスクリーンショットまたはURLの例を与えることができますか? – Matrym