jQuery ajaxStart& ajaxComplete直播?

时间:2010-11-21 21:02:46

标签: jquery

我有以下工作正常:

$(".new_comment").ajaxStart(function() {
    ajaxBanner('show');
    // Disable button
    $("input[type=submit]", this).attr("disabled", true);
});
$(".new_comment").ajaxComplete(function() {
    ajaxBanner('hide');
    // Re-enable button
    $("input[type=submit]", this).removeAttr("disabled");
});

问题是只有在页面呈现评论表单时才有效。在许多情况下,评论表单会动态注入页面,然后失败。

如何进行上述直播()?

感谢

2 个答案:

答案 0 :(得分:1)

这未经过测试,但也许值得一试?

$(".new_comment").live("ajaxComplete", function() {
    ajaxBanner('show');
    // Disable button
    $("input[type=submit]", this).attr("disabled", true);
});

另一种方法是在动态注入注释表单时添加事件,但我们需要更多代码(即注入发生的位置)。

答案 1 :(得分:0)

我不确定绑定到jQuery选择时.ajaxComplete()到底是如何工作的,但我认为你可以通过绑定到你知道存在的元素(即document)来轻松解决问题,然后使用普通选择器:

$(document).ajaxStart(function() {
    ajaxBanner('show');
    // Disable button
    $(".new_comment input[type=submit]").attr("disabled", true);
}).ajaxComplete(function() {
    ajaxBanner('hide');
    // Re-enable button
    $(".new_comment input[type=submit]").removeAttr("disabled");
});