2010-11-11 50 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