2015-09-25 79 views
5

使用应在第一页加载和后续Ajax回发注册的JQuery。 控制这是得到应用是在更新面板。现在我在做什么在页面加载和后续ajax回发jQuery的注册

注册同样的功能,就像在document.readysys.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(); 

    }); 
}); 

我想知道的是这是内部更新面板外更新面板

+0

我不是100%确定你在问什么。我想我明白了基本的想法。如果你可以澄清,我可以为你更好地回答这个问题。例如,CheckMaxLength()做了什么?如果你提出更具体的问题,我可以让我的答案更具体。 –

+0

CheckMaxlength()用于在输入时限制给定的最大长度。 – Liquid

回答

0

我不积极,你想要做什么的控制工作的具体办法,但我怀疑delegated events可能是你的答案。

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

例如,你可以给所有的textarea添加功能,无论当他们被添加到页面

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

第一个好处您的情况是,任何textarea的加入更新面板在任何点将获得委托功能。此外,如果您想要更新面板内的更新面板以及更新面板外的textare目标的不同行为,那么也可以这样做。

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

而且,请注意,这段代码运行时只有bodyupload-container需要做好准备。它并不需要textarea,所以你不必在Sys.Application.add_load里面运行它。