AJAX函数对正文更改但在keyup上生成了html对象

时间:2017-01-06 15:59:23

标签: javascript jquery ajax

在下面的代码中,我已经设置了当网页正文发生变化时会触发此功能。然后它会查找widget-pb-0-box_id。如果存在,因为它在加载时不存在。现在该函数将继续检查widget是否已更改,然后将发送AJAX调用。我想设置此函数,以便在body更改时触发该函数。然后在widget...上触发keyup。我尝试使用嵌套函数,但它会将调用级联起来并最终在keyup中每widget...次调用函数n + 1次。

$('body').on('change', '#widget-pb-0-box_id', function (e) {
    var data = {
        //data to be sent
    };

    $.post(ajaxurl, data, function (response) {
        //AJAX call
    });
});

1 个答案:

答案 0 :(得分:1)

您希望获取元素的keyup事件,该事件在页面加载时不存在。为什么你在'body'上使用'change'呢?找出创建此元素的点,然后追加'keyup'事件。

或者使用文档中描述的委托事件处理程序方法(https://api.jquery.com/on/参见直接和委派事件)。只需直接使用keyup事件

$('body').on('keyup', '#widget-pb-0-box_id', function (e) {
    var data = {
        //data to be sent
    };

    $.post(ajaxurl, data, function (response) {
        //AJAX call
    });
});