Javascript 选择更改事件正在触发多次

Javascript 选择更改事件正在触发多次,javascript,Javascript,下拉列表中的“更改”事件发生了非常奇怪的事情 基本上,我有一个下拉列表,在更改时,我必须进行一些跨域web服务调用。此调用是从javascript本身发出的 当我第一次更改“选择”列表中的项目时,更改事件仅触发一次。下一次两次,它就这样长大了 你知道为什么会这样吗 如果代码需要参考,我可以分享。但它是一个简单的“选择”列表和“更改”事件处理程序 $("#ArtifactSort > select").change(function() { var rankFiel

下拉列表中的“更改”事件发生了非常奇怪的事情

基本上,我有一个下拉列表,在更改时,我必须进行一些跨域web服务调用。此调用是从javascript本身发出的

当我第一次更改“选择”列表中的项目时,更改事件仅触发一次。下一次两次,它就这样长大了

你知道为什么会这样吗

如果代码需要参考,我可以分享。但它是一个简单的“选择”列表和“更改”事件处理程序

$("#ArtifactSort > select").change(function() {        

    var rankField= "";
    rankField = $("#ArtifactSort > select option:selected").text();

    alert('within select change event artifact: '+ rankField );

    //Making the text little lighter and showing the loading icon.
    //$("#ArtifactPetalContentUL").css("filter", "alpha(opacity: 30)");
    $loadingIconForArtifact = addLoadingIcon("ArtifactPetalContentUL", "Artifact");

    var refinedStoresLocal= new Array();
    for (var storeIndex in _searchResponseForArtifact.searchResult.searchRequestProcessed.stores) {
        refinedStoresLocal.push(_searchResponseForArtifact.searchResult.searchRequestProcessed.stores[storeIndex].name);
    }

    var refinedFiltersLocal = new Array();
    for (var filterIndex in _searchResponseForArtifact.searchResult.searchRequestProcessed.filters) {
        refinedFiltersLocal.push(_searchResponseForArtifact.searchResult.searchRequestProcessed.filters[filterIndex]);
    }

    //rankfield.
    var rankLocal=new Array();
    rankLocal.push(new RankingField(rankField, 1, 0));
    //Request object and WS Call.
    var _searchRequestForArtifactLocal = getArtifactSearchRequestObject(_queryStringLocal, _memberId, _communityId, _pageNumber, _pageSize, propertiesForArtifact, refinedStoresLocal, ClassificationClusteringObjectsForArtifact, refinedFiltersLocal, rankLocal);
    getSearchResponse("successcallForArtifact", _searchRequestForArtifactLocal);
});
谢谢
Subrat.

必须从更改处理程序中绑定新处理程序。。因此,每次运行时,它都会添加一个额外的处理程序实例,以便下次执行

向我们展示您分配给更改事件的处理程序(以及如何执行),以获得更详细的答案

[更新]

从你的代码来看,一切似乎都很好。。请检查您调用的两个函数(
addLoadingIcon
getSearchResponse
),以防它们执行任何jQuery事件绑定,这可能会无意中应用于选择对象


还要检查你的
RankingField
构造函数,以防它绑定任何事件…

我遇到了OP描述的相同问题。我发现Chrome开发工具帮助我验证了这是一个多事件处理程序问题。打开开发工具,使用元素选择器选择有问题的“选择”对象,并在“事件侦听器”选项卡上检查更改处理程序。

我遇到了类似的问题,只是我从动态加载的内容中将函数绑定到静态对象。从动态内容来看,我似乎只绑定了一次,但因为我绑定到了静态控件,所以每次加载动态内容的新实例时,它都会累积事件:/