我在下面的代码中设置全局变量,将元素设置为这些变量,然后在下拉列表中指定委托更改事件。
除IE8及更低版本外,所有浏览器都会触发更改事件。关于IE7和更低版本并没有太多困扰。
有任何帮助表示赞赏吗?
$(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 () {});
}
答案 0 :(得分:1)
如果您使用的是jQuery 1.7或更高版本,最佳解决方案是使用on()
代替delegate()
。
使用on()
的代码将是:
portfolioGroupFilters.on("change", ".availableFilters", function () {});
此外,我们很高兴知道live()
已被弃用:http://api.jquery.com/live/
从jQuery 1.7开始,不推荐使用
.live()
方法。使用.on()
附加事件处理程序。旧版jQuery的用户应优先使用.delegate()
{。{1}}。