Javascript 在IE8及更低版本中未触发JQuery委托
我在下面的代码中设置了全局变量,将元素设置为这些变量,然后在下拉列表中分配一个委托更改事件 除了IE8和更低版本之外,所有浏览器都会触发change事件。不太在意IE7和更低版本 感谢你的帮助吗Javascript 在IE8及更低版本中未触发JQuery委托,javascript,jquery,Javascript,Jquery,我在下面的代码中设置了全局变量,将元素设置为这些变量,然后在下拉列表中分配一个委托更改事件 除了IE8和更低版本之外,所有浏览器都会触发change事件。不太在意IE7和更低版本 感谢你的帮助吗 $(function () { initialisePage(); }); function initialisePage() { window.portfolioGroupFilters = $("#portfolioGroupFilters"); window.portfo
$(function () {
initialisePage();
});
function initialisePage() {
window.portfolioGroupFilters = $("#portfolioGroupFilters");
window.portfolioGroupsList = $("#portfolioGroupsList");
window.portfolioGroupAccounts = $("#portfolioGroupAccounts");
window.coverSheetsList = $("#coverSheetsList");
window.coverSheetsPanel = $("#coverSheetsPanel");
window.reportGroupsList = $("#reportGroupsList");
window.reportGroupPanel = $("#reportGroupsPanel");
window.searchResults = $("#searchResults");
setportfolioGroupFiltersdelegates();
}
function setportfolioGroupFiltersdelegates() {
portfolioGroupFilters.delegate(".availableFilters", "change", function () {});
}
如果您使用的是jQuery 1.7或更高版本,最好的解决方案是使用
on()
而不是delegate()
您使用()上的代码将是:
portfolioGroupFilters.on("change", ".availableFilters", function () {});
另外,最好知道live()
已被弃用:
从jQuery1.7开始,不推荐使用.live()
方法。使用.on()
附加事件处理程序。较旧版本的jQuery用户应优先使用.delegate()
,而不是.live()
您使用的是哪个版本的Jquery?如果您使用的是较新版本的Jquery(大于1.7)-请切换到on(),使用1.4.2版尝试使用live()而不是delegate或.on()。已在()和live()上试用,但均无效。强烈建议使用更新版本;1.4现在已经相当旧了。目前无法升级jQuery。@ USER885666——您可能想考虑使用。