嵌入的信息元數據在該行,一拉......
<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」類。請注意,如果您有很多屬性或其中任何屬性都包含需要包含換行符的數據,則效率不高。您可以通過在該<tr>
上定義的iterating over each attribute來改進此功能,並自動包含以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-」,因此可以顯示在上面的任何位置。
爲什麼不按照要求創建一個對話框,並根據相關行填充正確信息?像這樣創建_x_對話框效率很低。 – 2011-01-07 02:58:17
您可以給出一個截圖或網址的例子,當你說對話時你會想到什麼? – Matrym 2011-01-07 03:03:59