繁体   English   中英

MVC下拉更改事件仅触发一次?

[英]mvc dropdown change event firing only once?

我正在通过此下拉列表的change事件触发的javascript提交AjaxForm,并相应地更新div(也包含ddlist)。

  $(function() {
            $('#Page').change(function() {
                alert("testing");
                var value = $(this).val();
                if (value != "<%=Model.CurrentPage%>") {
                    $("#pageJump").click();
                }
            });
        }); 

    <div id = "updateDiv">

    <%=Html.DropDownList("Page", Model.dropDown)%>

</div>

一些Ajax东西正在更新updateDiv。 DropDownList正确填充了项目,但仅触发了一次上述javascript事件(在发布一次之后),而不是第二次。 为什么这样做呢?

编辑:

 $(function() {
        initPaging();
    });

    function initPaging() {
        alert("TEST");
        initPagingDdl();
    }

    function initPagingDdl() {
        $('#Page').change(function() {
            alert("all");
            var value = $(this).val();
            alert(value);
            if (value != "<%=Model.CurrentPage%>") {
                $("#pageJump").click();
            }
        });
}

在我的AjaxOptions构造函数中,我进行了设置:

OnComplete = "initPaging"

它仍然无法正常工作。 它在Ajax发布后调用TEST,所以它正在命中代码,但由于某种原因未绑定?

每当您使用AJAX更新updateDiv的内容时,DOM都会每次刷新。 我不太确定,但是它取消了与其子级关联的所有事件的绑定。 因此,您的函数仅执行一次。

您可以使用

  1. 在您的ajax调用的回调方法中绑定click事件或
  2. 将点击事件绑定到

    $('#updateDiv select')。change(function(){}); //不确定是否可以工作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM