通常我有一个表或一个列表,我想在单击给定行时创建一个事件,并对单击的行执行特定操作。为此,我一直在click()中定义data()。有时我发送一段数据,有时我发送整行。
我这样做是最好的方式,还是有更好的方法?最好只将所需数据发送到对话框,还是发送整个对象(例如我的情况下的行)并在对话框中提取数据?
由于
$("#someTable tbody").on("click", "a.doIt", function() {
$("#dialog").data('id',$(this).parent().parent().attr('data-id')).dialog("open");
//$("#dialog").data('id',$(this).parent().parent()).dialog("open");
return false;
});
$("#dialog").dialog({
open : function() {
alert($(this).data('id')+' is available.');
//alert($(this).data('row').attr('data-id')+' is available.');
},
buttons : [
{
text : 'CLOSE',
"class" : 'gray',
click : function() {
alert($(this).data('id')+' is available.');
//alert($(this).data('row').attr('data-id')+' is available.');
$(this).dialog("close");
}
}
]
});
<table id="someTable">
<tbody>
<tr data-id="123"><td><a href="javascript:void(0)" class="doIt">aaa</a></td><td>bbb</td></tr>
<tr data-id="321"><td><a href="javascript:void(0)" class="doIt">ccc</a></td><td>ddd</td></tr>
<tr data-id="111"><td><a href="javascript:void(0)" class="doIt">eee</a></td><td>fff</td></tr>
</tbody>
</table>
答案 0 :(得分:1)
您可以像这样传递ui对话框的数据
document.getElementById('dialog-modal').innerHTML = '<span style="font-family:sans-serif;font-size:18px">'+str+'</span>';
$( "#dialog-modal" ).dialog({
height: 120,
modal: true,
resizable:false,
buttons: {
Ok: function() {
$( this ).dialog( "close" );
}
}
});
$(".ui-dialog-titlebar").hide();
您可以更改所需ID的innerHTML,然后打开对话框。
更新:
$("#someTable tbody").on("click", "a.doIt", function() {
$("#dialog").html($(this).parent().parent().attr('data-id').html());
$("#dialog").dialog({
height: 120,
modal: true,
resizable:false,
buttons: {
Ok: function() {
$( this ).dialog( "close" );
}
}
});});