jQuery:将所有ready()规则应用于新元素的技巧或最佳实践(不谈论live()或on())

Edu*_*eni 2 javascript ajax jquery asp.net-mvc-3

我在jQuery ready()函数上有一些标准的插件绑定,适用于所有新请求.现在,随着我们向应用程序添加越来越多的ajax,这些新元素将留在初始绑定之后.

示例规则:

$(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();

    .......
Run Code Online (Sandbox Code Playgroud)

不是在谈论live()绑定事件的函数,因为这不是事件.

因为我觉得这很常见,我想知道你们是怎么做到的.

Bla*_*ger 5

将这些功能放在他们自己的独立功能中.调用THAT功能document.ready以及任何其他需要重新加载的功能.

function initialize() {
    // do stuff;
}

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

$.ajax({
    // url, data, etc.
    success: function() {
        initialize();
    }
});
Run Code Online (Sandbox Code Playgroud)

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