我正在使用PHP在后端构建一个带有一些值的Grid,然后我通过JSON使用和AJAX调用发送它到视图。其中一个值是包含在带有Javascript函数调用的a
元素中的图像。例如:
<a class="actionimage" target="_blank" href='javascript:addException(0,"name");void(0);'>
<img src="/images/icons/16x16/delete.png">
</a>
函数addException()
已经存在于AJAX调用之前的页面上,所以当我尝试在添加到DOM的最新元素上执行函数时,它(函数)不起作用,因为不知道它们。
让我先解释一下上面的内容:
结果类似于第一次加载页面时呈现的函数addException()
。请注意,我没有添加任何与网格相关的内容。
<div class="grid" id="grid></div>
<script>
$(function(){
function addException(param1, param2) {
// ....
}
});
</script>
...
使用AJAX结果动态构建以下块:
<div class="grid" id="grid">
<a class="actionimage" target="_blank" href='javascript:addException(0,"name");void(0);'>
<img src="/images/icons/16x16/delete.png">
</a>
最终结果如下:
<div class="grid" id="grid">
<a class="actionimage" target="_blank" href='javascript:addException(0,"name");void(0);'>
<img src="/images/icons/16x16/delete.png">
</a>
</div>
<script>
$(function(){
function addException(param1, param2) {
// ....
}
});
</script>
有了你可以点击图像,你会看到如何调用该函数,因为它不知道AJAX调用添加到DOM的新元素。这就是问题所在。
我该如何使这项工作?我确实知道动态创建的元素上的绑定事件的.on()
,但我不知道如何在这种情况下适应它。网格包含在带有类和ID的DIV上,这可能有用与否。有什么帮助吗?