jquery1.7.2 单击事件未触发
jquery1.7.2 click event not firing
我正在尝试将单击事件绑定到某个具有id="unit"
的div
。这些div
是在运行时生成的,我的 javascript 似乎不起作用。
我的JavaScript点击事件。
$("#unit").click(function(){
alert('1');
});
在 Ajax 调用之前。
<div id="content">
<div id="building">
</div>
<div id="units">
</div>
</div>
在阿贾克斯调用之后。
<div id="content">
<div id="building">
<div value="1" class="buildingBlock"><h3 style="text-align: center;">Level - 1</h3></div>
<div value="2" class="buildingBlock"><h3 style="text-align: center;">Level - 2</h3></div>
<div value="3" class="buildingBlock"><h3 style="text-align: center;">Level - 3</h3></div>
<div value="4" class="buildingBlock"><h3 style="text-align: center;">Level - 4</h3></div>
</div>
<div id="units">
<div value="1" id="unit">#02-01<br>3 room(s)</div>
<div value="2" id="unit">#02-02<br>2 room(s)</div>
<div value="3" id="unit">#02-03<br>5 room(s)</div>
</div>
</div>
由于要动态追加#unit
元素,因此需要将事件委托给最近的父元素。试试这个:
$("#units").on('click', '.unit', function(){
alert('1');
});
此外,多个id
属性无效。您应该更改代码以使用类,如下所示:
<div id="units">
<div value="1" class="unit">#02-01<br>3 room(s)</div>
<div value="2" class="unit">#02-02<br>2 room(s)</div>
<div value="3" class="unit">#02-03<br>5 room(s)</div>
</div>
您
不能有多个具有相同 id 的元素。
改用类。例如 class="unit"
以及当您绑定事件使用$(".unit")..
此外,如果我们正在考虑 Ajax 请求,无论是在成功方法中还是在后端中,您都应该准备额外的 js 代码来正确初始化新元素。让事件侦听父级实际上是一种黑客攻击。
因此,如果您有:
$.get("someurl", {}, function(data){
$("#units").append(data);
$("#units .unit").unbind("click").bind("click", function(){
// your click handler here
});
});
至少我会这样做,除非您有特定需要控制来自父级的事件。
将id
更改为unit
的class
<div id="units">
<div value="1" class="unit">#02-01<br>3 room(s)</div>
<div value="2" class="unit">#02-02<br>2 room(s)</div>
<div value="3" class="unit">#02-03<br>5 room(s)</div>
</div>
尝试使用委托事件处理程序。
$("#units").on('click', '.unit', function(){
alert('1');
});
相关文章:
- 如何使用2个事件单击1个日历
- 在 javascript 事件单击后清空输入
- 在元素 SVG 中使用 JavaScript 或 jQuery 进行事件单击
- fullCalendar动态事件单击行为
- 错误:'这'对象不正确;在JQuery中单击事件-单击时的意外行为
- 如何启用事件单击仅在指定的小时范围内
- 完整日历事件单击未触发
- 打开选择之前的事件.(单击工作速度不够快)
- 在 JavaScript 中,函数不会在事件单击时触发
- 主干分组依据集合仅在一次事件单击后呈现
- 如何禁用地图上的所有鼠标事件(单击、悬停等)
- Fullcalendar将图标添加到事件而不触发事件单击
- 在将JQuery对象添加到DOM之前,请将事件单击到JQuery对象
- 如何模拟拖动事件(单击鼠标移动按钮)
- 如果可编辑为 false,则全日历事件单击处理程序不起作用
- onclick事件单击时未添加类
- 事件单击Kml Placemark
- 事件单击时没有运行数据库
- 在事件单击函数中添加href url
- 创建元素和事件(单击)