2015-09-25 84 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裏面運行它。