【发布时间】:2014-09-24 21:14:58
【问题描述】:
当用户单击表格单元格内的内容时,我试图显示一个弹出窗口(使用 Jquery UI 的 dialog() 函数)。我正在使用从 REST url 上的 Ajax 调用返回的数据填充表。我得到正确的数据并且表格显示正确。问题是表格单元格内的文本的 click() 函数没有被调用。
罪魁祸首似乎是 Ajax 调用,因为同样的方法适用于表内的静态数据。
来自 html 文件的片段:
<head>
$(document).ready(function(){
$("#dlg1").dialog({ autoOpen: false });
$('.linkClass1').click(function() {
$("#dlg1").dialog("open");
});
$.ajax({
url: "http://localhost:8080/abc/rest/def",
type: "GET",
contentType: 'application/json; charset=utf-8',
success: function(resultData) {
var len = resultData.length;
var table = $('<table></table>').addClass('tableClass1');
var hRow = $('<tr></tr>');
var hVar1 = $('<th></th>').addClass('headingClass1').text("col1");
hRow.append(hVar1);
table.append(hRow);
for(i=0; i<len; i++)
{
row = $('<tr></tr>');
var var1 = $('<td></td>').addClass('cellClass1');
var linkVar1 = $('<a>')
.attr('class', 'linkClass1')
.attr('href', '#dummyId')
.text(resultData[i].id);
var1.append(linkVar1);
row.append(var1);
table.append(row);
}
$(table).attr("id","tableId1");
// this table is appended to an html element and is correctly displayed
},
});
});
</head>
<body>
<div id="dlg1" title="Basic dialog">
<p>This is the default dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the 'x' icon.</p>
</div>
</body>
单击表格内的文本时,什么也没有发生,只是原始 url 附加了#dummyId。我还尝试在 click 函数中使用 alert() ,甚至没有显示。 即使在 Ajax 调用中设置 async: false 也无济于事。
如果有人能帮忙,谢谢。
【问题讨论】:
标签: javascript jquery html ajax