我的 ASP.NET 网页表单页面中有以下代码:
$(document).ready(function () {
myListBox_OnChangeHandler();
});
function myListBox_OnChangeHandler() {
$('#<%= myListBox.ClientID %>').change(function () {
alert('Worked');
});
}
这是我的列表框:
<asp:ListBox ID="myListBox" runat="server" SelectionMode="Multiple" AutoPostBack="True" OnSelectedIndexChanged="myListBox_SelectedIndexChanged" />
将jQuery
处理程序连接到change
ListBox 的事件实际上是可行的,但有点好。每次进行新选择时,该方法都会被调用多次。例如,单击1,无警报,单击2,2警报,单击3,4警报等。并不是说alert
这个方法中会有一个真实的(我也尝试过只是声明一个变量并放置一个断点并删除并且alert
它仍然表现相同),但我想确保它有效。
但是,如果我更改我的ListBox
并定义其onchange
客户端事件并将其指向如下方法,则它可以工作:
<asp:ListBox ID="ui_lbxAdUsers" runat="server" SelectionMode="Multiple" AutoPostBack="True" onchange="myListBox_OnChangeHandler();" OnSelectedIndexChanged="myListBox_SelectedIndexChanged" />
...并将其更改JS
为:
function myListBox_OnChangeHandler() {
alert('Worked');
}
...一切正常。$(document).ready
我更喜欢通过函数和使用以有组织的方式连接我的处理程序,jQuery
但重复调用是该方法的阻碍。
为什么使用第一种方法会导致该方法在每次单击更改时被调用复合次数ListBox
,但在我在控件上声明事件的第二种方法中却没有发生onchange
?