尝试将某些旧代码从live()
更新为使用on()
,而且某些内容失败了。
$('#accordion').on('click','.EditModeDetails', function(event){
alert('yay');
});
其中.EditModeDetails
是注入HTML的类,如下所示:
<li class="instructionText">
<input value="EditModeDetails" class="EditModeDetails" name="EditModeDetails" type="checkbox">
<label for="EditModeDetails">Edited text replaces existing text. To add new text, check this box </label>
</li>
...而#accordion
是一个在页面加载时加载的手风琴控件。
如果我删除了过滤器,那么:
$('#accordion').on('click', function(event){
alert('yay');
});
....我收到了所有地方的警报。
已经查看了一个使用类而不是元素选择器且没有运气的示例。
编辑:非常感谢你们提出的建议,但到目前为止一切都没有。加载的JQuery版本是ver-1.7.1。以下是实际开发的链接:http://esc.toypizza.com/sysalert
要查看问题,请在数据表中点击http://esc.toypizza.com/_img/details_open.png,然后点击显示的http://esc.toypizza.com/_img/up_arrow.png。接下来,单击手风琴部分“详细信息”(默认情况下打开的“当前问题”部分上方)。您将看到“清除”按钮右侧的违规复选框。
答案 0 :(得分:1)
我认为你有一个公开的div,搞乱一切。
<!--Accordian-->
<div id="accordion" class="invis">
<h3><a href="#">Categories</a></h3>
<div><!--Accordian- panel OPEN-->
div#accordion
关闭了几行,但是注释Accordian- panel OPEN
的div未关闭。这导致手风琴被误导,并且一些元素位于复选框的顶部,这就是事件没有到达复选框的原因。
答案 1 :(得分:0)
我用未来的dom元素及其工作
制作了一个样本您的代码必须有其他内容。
1)你确定使用1.7 +?
1.5)尝试做:(用于测试)
$('#accordion').on('click','.instructionText', function(event){
alert('yay');
});
1.7)使用/>
告诉我它是否罚款(我们会从那里继续)
2)请上传更多代码
3)提高你的接受率。
4)你的代码很好(从我看到的)
答案 2 :(得分:0)
阻止事件冒泡并在前往li
#accordion
点击
$('#accordion').on('click','.EditModeDetails', function(event){
event.stopPropagation();
alert('yay');
});
答案 3 :(得分:0)
有些元素在复选框上,因为你没有得到事件触发
可能你应该检查一些其他的HTML
<!DOCTYPE html>
<link type="text/css" rel="stylesheet" href="/_css//escalate.css">