我在jQuery ready()函数上有一些标准的插件绑定(bind),对所有新请求都可以正常工作。现在,随着我们向应用程序中添加越来越多的ajax,这些新元素被留在了初始绑定(bind)之后。

规则示例:

$(function () {
    $('.date').datepicker({ showOn: 'button', buttonImage: "cal.gif" })
               .blur(function (e) {
                   $(this).val(formatFecha($(this).val()));
               })
    $('.ui-datepicker-trigger').attr("tabindex", "-1");
    $(".decimalnumber").numpadDecSeparator({ separator: "," })
                   .numeric(",")
                   .focus(function () { if ($(this).val() == '0,00' || $(this).val() == '0') $(this).val(''); });
    $(".integernumber").numeric().focus(function () { if ($(this).val() == '0') $(this).val(''); });
    $(".spinner").spinner({ min: 0, max: 10000000 });
    $(".jbtn").button();

    .......

我不是,而是,而是live()函数来绑定(bind)事件,因为这不是事件。

因为我认为这很普遍,所以我想知道您的人员如何做到这一点。

最佳答案

将这些功能放在自己的单独功能中。在document.ready上调用THAT函数,然后在其他任何时候需要重新加载东西。

function initialize() {
    // do stuff;
}

$(document).ready(function() {
    initialize();
});

$.ajax({
    // url, data, etc.
    success: function() {
        initialize();
    }
});

请注意,某些插件(例如更改DOM的幻灯片)可能需要您在重新初始化它们之前调用destroy方法或选项。

07-24 18:13
查看更多