2010-11-11 52 views
0

我正在提交一个AjaxForm的帮助,由此dropdownlist的更改事件触发的JavaScript,并相应地更新div(也包含ddlist)。mvc下拉更改事件只触发一次?

$(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> 

updateDiv正在更新一些Ajax的东西。 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,所以它打到了代码,但由于某种原因没有绑定?

回答

0

每当您使用AJAX更新updateDiv的内容时,每次都会刷新DOM。我不太确定,但它解除了与其孩子相关的所有事件。因此你的函数只执行一次。

您可以使用

  1. 在你的Ajax调用的回调方法或
  2. 绑定click事件

    $单击事件的绑定( '#updateDiv选择')。改变(功能(){ }); //不知道可以工作

+0

你能否详细说明1)?我对jquery很陌生。 – TPR 2010-11-11 06:47:07

+0

@progtick,您在ajax响应处理函数中绑定重新附加更改事件。 – 2010-11-11 06:49:09

+0

我现在编辑了我的问题。它仍然没有工作。 – TPR 2010-11-11 07:15:01