javascript - jquery如何访问函数内部的函数

标签 javascript jquery

我认为标题有些误导,但我不知道还能怎么说。

我有一个功能,可以在单击链接时出现一个小弹出窗口(是否删除文章的确认消息)。

我还有一个函数,可以将数据发送到 php 文件,并将获得的数据(也是文章列表)插入到 div 元素中。

当我尝试使用该功能对最初使用 PHP 生成的文章列表进行删除确认时,一切正常,但是当我尝试单击我插入到的文章列表中的(本质上相同的)链接时div 与jquery,该功能似乎不起作用(即没有出现确认消息)。

我认为这是因为链接是在 js 文件加载后插入的,但是有没有办法使这个函数全局化,以便它也适用于我稍后插入的内容?

$('.delete').click(function () {
    var link = $(this).attr('href');
    $('#dialog')
        .attr('title', 'Do you want to delete this article?')
        .text('If you click Delete, the entire article and all comments attached to it will be erased.')
        .dialog({
            buttons: {
                'Delete': function() { window.location.href = link; },
                'Cancel': function() { $(this).dialog('close'); }
            },
            closeOnEscape: true,
            draggable: false,
            resizable: false,
            show: 'drop',
            hide: 'drop',
            modal: true
        });
});

最佳答案

您需要使用 jQuery 的 .on() 方法来监听该事件(手册 - jquery.com )。

原因是 - 一旦您开始动态添加需要响应事件的新元素,您需要有一种方法来通知事件监听器对它们使用react。 .on() 就是这么做的。

一个简单的例子是:

$("div.parent_of_button").on("click", ".class-of-button", function(event){
    $(this).text('clicked!');
});

这意味着您在页面加载后添加的 .class-of-button 类的所有元素都将响应点击。

编辑

有时,如果将 .on() 附加到所有动态创建的元素的父级,然后您要定位的元素是 .on( ) 方法,如示例所示。

关于javascript - jquery如何访问函数内部的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16761557/

相关文章:

javascript - JsTree 速度问题

php - javascript+php 更改 url 值

javascript - 如何通过异步调用使用 useState Hook 来更改数组?

javascript - 两个输入框之间的 jQuery .val Enigma

jquery - jqGrid "_search"参数始终为 false

jquery - 显示段落的第一行

javascript - webGL - 如何在帧缓冲区旁边设置模板缓冲区并使用它?

javascript - 为什么单引号会被 grails 的 google 可视化插件转义?

javascript - 绑定(bind)到滚轮然后使用正常滚动

javascript - 使用 bootstrap 或 Jquery 根据标题排列行文本