PCa*_*nde 1 asp.net ajax jquery updatepanel webforms
我有一个UpdatePanel,我用它来替换页面内的内容.在UpdatePanel之外我有一些jQuery使用该on()函数来分配一些按钮点击.根据我的理解,新的jQuery.on()语法旨在替换事件处理程序和旧live()功能.该live()函数应该监视页面的更改并将事件附加到添加到页面的任何元素,但这不会发生on()在我的测试页面中的函数中.如果我在UpdatePanel更改后打开控制台并运行相同的函数,则事件处理程序可以正常工作.
这是我有javascript智慧:
$(function () {
$('.results').on('click', function () {
$(this).children('.explination').slideToggle();
});
});
Run Code Online (Sandbox Code Playgroud)
UpdatePanel是一个简单的UpdatePanel,里面有MultiView.
我知道我可以使用Microsoft Ajax PageRequestManager来处理这个问题,但是如果事件绑定就像我认为的那样应该是不必要的.我现在会用它,但我很好奇我是不是做错了,或者jQuery和ASP.Net是不是在一起工作.
我的一个理论是,无论出于何种原因,UpdatePanel都是如何不触发jQuery用于捕获更改并再次触发on事件的DOM更新触发器.
诀窍是使用委托事件.引用jQuery文档:
委托事件的优点是,它们可以处理来自稍后添加到文档的后代元素的事件.通过选择在附加委托事件处理程序时保证存在的元素,您可以使用委派事件来避免频繁附加和删除事件处理程序的需要.
要使用委托事件,请将选择器作为第二个参数传递,例如:
$('html').on('click', '.results', function () {
$(this).children('.explination').slideToggle();
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2032 次 |
| 最近记录: |