0

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

change 事件在除 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 () {});
}
4

1 回答 1

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()优先使用.live().

于 2013-05-22T13:17:10.090 回答