在jQuery.html()中,我想执行以下脚本.
$("#row1").html("<td id="cellId"><script>if (selectedStr) {var elem = $(\"#cellId\");
$(elem).bind(\"onRefresh\", function() {loadColor(selectedStr); storeStr(selectedStr);});$(elem).trigger(\"onRefresh\");) }</script><td>")
需求:
我有一个testPage.jsp,其中包含带有单元格的表.选择特定单元格并单击“提交”按钮后,将打开一个弹出窗口.在弹出页面中,一些数据被更改并通过ajax处理.必须将生成的ajax响应动态设置为父行. ajax响应构建了要设置的整个内容.这是我失败的地方.
Ajax响应将是这样的.
< TD> …..< TD>
< TD> …..< TD>
< TD>内容<脚本> …< /脚本>< / TD>
< TD> …..< TD>
< TD>内容<脚本> …< /脚本>< / TD>
…
此外,“selectedStr”是testPage.jsp中的javascript全局变量.
问题:
1.“selectedStr未定义”是浏览器错误消息.我无法引用全局变量.
2.元素绑定没有发生.
我试图利用jQuery.getScript(),jQuery.globalEval,jQuery.eval.
我无法理解JQuery的{{html}}.
谢谢!
最佳答案 不是将所有内容都放入脚本中,而是在内存中构建元素,然后在添加到DOM之前将事件处理程序添加到内存中.
$td = $("<td></td>").attr("id", "cellId")
.bind("onRefresh", function() {
if (selectedStr) {
loadColor(selectedStr);
storeStr(selectedStr);
}
})
.trigger("onRefresh");
$("#row1").html($td);
另外,要小心添加具有相同Id的多个td元素.