Javascript JQuery:ussing.toggle()后未绑定的事件处理程序
我有一个select元素,已绑定到更改事件,如下所示:Javascript JQuery:ussing.toggle()后未绑定的事件处理程序,javascript,jquery,html,Javascript,Jquery,Html,我有一个select元素,已绑定到更改事件,如下所示: $("#selectId").on("change", handler); 我也尝试过使用.bind和.change,一切都按预期进行。select本身位于一个div中,当用户通过.toggle方法单击该div时,该div将隐藏/显示。问题是,当div被隐藏然后再次显示时,更改事件不再在应该触发时触发。我可以通过再次绑定事件来解决这个问题,但我想知道这是正常行为还是JQuery 1.7.1中的错误,或者是代码中的错误 以前有其他人有过这个
$("#selectId").on("change", handler);
我也尝试过使用.bind和.change,一切都按预期进行。select本身位于一个div中,当用户通过.toggle方法单击该div时,该div将隐藏/显示。问题是,当div被隐藏然后再次显示时,更改事件不再在应该触发时触发。我可以通过再次绑定事件来解决这个问题,但我想知道这是正常行为还是JQuery 1.7.1中的错误,或者是代码中的错误
以前有其他人有过这个问题吗
编辑
这是隐藏div的代码:
$('.accordion .accordionHeader').click(function()
{
if ($(this).next().is(":visible"))
{
$("#mainForm").data("validator").reset();
$(this).removeClass("expandedHeader");
$(this).find("em").removeClass("expandedHeader");
}
else
{
$(this).addClass("expandedHeader");
$(this).find("em").addClass("expandedHeader");
}
$(this).next().toggle('fast');
return false;
})
你能发布一个重现你问题的帖子吗?这不是我以前经历过的事情,只要元素没有从DOM中删除然后重新创建,我就不明白为什么切换显示会取消/取消绑定事件处理程序。您能给我们展示一下显示和隐藏div的代码吗?如果您所做的只是显示和隐藏事件,那么事件没有理由被解除绑定。这不应该发生。我支持演示的请求。请注意,.change在内部调用.on,从1.7开始.bind也会这样做,这样就不会有任何区别。您可能会动态更新显示/隐藏的div的内容。我将尝试通过演示来复制这一点。我会尽快把它寄出去。