0

列表项没有从一个列表框移动到另一个。我尝试使用 firefox 调试脚本,但它从未进入 button.click 内部。我不确定我做错了什么。谢谢你的帮助。

我有一个母版页:然后我有一个内容页面,我在其中添加了:

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
      <script src="../Scripts/jquery-1.4.1.js" type="text/javascript"></script>
    <script src="../Scripts/UiEffect/dragdrop.js" type="text/javascript"></script>   
</asp:Content>

这是我在内容页面 HTML 中的 html:List box item I am getting from DB using Databind()

<div class="question">

       <asp:ListBox ID="Allitem" runat="server" Rows="7" Width="200px" ></asp:ListBox>

        <input id="ibtnLeft" type="image"  src="../Images/LeftArrow.png" />
        <input id="ibtnRight" type="image" src="../Images/rightArrow.png" />
       <asp:ListBox ID="selectedItem" runat="server" Rows="7" Width="200px"></asp:ListBox>
    </div>

这是我对 dragdrop.js 外部文件的 j-query:

$("#ibtnRight").click(function ($e) {
    $("select[id$='Allitem'] option:selected").appendTo($("select[id$='selectedItem']"));
    $("select[id$='Allitem'] option:selected").remove(); $e.preventDefault();
});

$("#ibtnLeft").click(function ($e) {
    $("select[id$='selectedItem'] option:selected").appendTo($("select[id$='Allitem']"));
    $("select[id$='selectedItem'] option:selected").remove(); $e.preventDefault();
});
4

2 回答 2

3

'dragdrop.js' 中的代码需要在 DOM 加载后运行,否则选择器可能会错过尚未创建的目标。

$(document).ready(function(){
  // run initializing code here
});

同样正如@Chris 指出的那样,id 可能不会像您想象的那样呈现。在这种情况下,您可以在页面本身的脚本标记中使用内联动态 javascript:

<script type="text/javascript">
  $(document).ready(function(){
    $('#<%= Allitem.ClientID %>').doSomething();
  });
</script>
于 2012-08-08T15:22:07.230 回答
0

我听说 ASP.NET 有时会在您实际运行代码时更改 ID,您确定通过 JQuery 定位的 ID 与代码中定义的 ID 相同。作为旁注,为什么不移动 ASP.NET MVC。

于 2012-08-08T15:25:36.467 回答