如何在动态创建调用它的元素时执行Javascript函数?

时间:2016-11-01 18:37:19

标签: javascript jquery events

我正在使用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的最新元素上执行函数时,它(函数)不起作用,因为不知道它们。

让我先解释一下上面的内容:

  • 我称之为网址
  • Page gets render
  • 结果类似于第一次加载页面时呈现的函数addException()。请注意,我没有添加任何与网格相关的内容。

    <div class="grid" id="grid></div>
    <script>
        $(function(){
            function addException(param1, param2) {
                // ....
            }
        });
    </script>
    ...
    
  • 正在进行AJAX通话....
  • 使用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上,这可能有用与否。有什么帮助吗?

0 个答案:

没有答案