在页面加载和随后的ajax回发时注册jquery

Liq*_*uid 5 javascript ajax jquery updatepanel asp.net-ajax

使用应该在首页加载和随后的Ajax回发时注册的JQuery.应用此控件的控件是在更新面板内部.现在我在做什么

以同样的方式注册相同的功能document.ready,sys.application.add.load因此它适用于更新面板和控制中的控件,这些控件位于更新面板之外.

$(document).ready(function () {

    CheckMaxlength();

    //If Text area is placed inside update panel then apply restriction for texarea size.

    Sys.Application.add_load(function () {

    CheckMaxlength();

    });
});
Run Code Online (Sandbox Code Playgroud)

我想知道使用更新面板和外部更新面板内的控件的确切方法是什么

Ste*_*ton 0

我不确定你想做什么,但我怀疑委托活动可能是你的答案。

委派事件的优点是它们可以处理来自稍后添加到文档中的后代元素的事件。通过选择在附加委托事件处理程序时保证存在的元素,您可以使用委托事件来避免频繁附加和删除事件处理程序的需要。

例如,您可以向所有文本区域添加功能,无论它们何时添加到页面

$( "body" ).on( "click", "textarea", function() {
    alert( $( this ).val() );
});
Run Code Online (Sandbox Code Playgroud)

对于您的情况来说,第一个好处是任何时候添加到更新面板的任何文本区域都将获得委派的功能。

此外,如果您想为更新面板内部和更新面板外部的文本设置不同的行为,您也可以这样做。

$("body").on('click', 'textarea', function () {
    alert( "outside" + $(this).val());
});

$(".update-panel").on('click', 'textarea', function () {
    alert("inside: " +  $(this).val());

    //stop the event from propagating up to the body
    event.stopPropagation(); 
});
Run Code Online (Sandbox Code Playgroud)

另请注意,运行此代码时只需准备好body和。upload-container它还不需要 textarea 在那里,所以你不必在 里面运行它Sys.Application.add_load