JQuery委托不在IE8及更低版本中解雇

时间:2013-05-22 13:02:52

标签: javascript jquery

我在下面的代码中设置全局变量,将元素设置为这些变量,然后在下拉列表中指定委托更改事件。

除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 () {});
}

1 个答案:

答案 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}}。