如何为 ajax 加载的内容注册单击事件
How to register click event for ajax loaded content
这是我拥有的html
<input type="text" name="post[price]" id="productUpdate" class="test" disabled />
<div class="abs-locator" id="eventDrive"></div>
这是我的 CSS
.abs-locator{
width: 17.8%;
position: absolute;
margin-top: -29px;
margin-left: 150px;
height: 27px;
}
单击隐藏输入框时,我需要执行单击事件
这是我的 js
$('#eventDrive').on('click', function() {
alert('test');
});
但在这里什么也没发生。为什么会发生这种情况以及如何解决它
要在 Ajax 加载的内容上有一个点击事件,你必须在容器上注册该事件。我会做这样的事情:
$(document).on('click', '#eventDrive', function() {
alert('test');
});
这样,单击侦听器将在整个文档中注册,并且每次单击时,它都会检查您是否单击了 #eventDrive,即使在您注册侦听器时该元素不存在也是如此。
你需要使用类似的东西:
$(document).on('click', '#eventDrive', function() {
alert('test');
});
禁用的元素不会触发鼠标事件。大多数浏览器会将源自禁用元素的事件传播到 DOM 树上,因此可以将事件处理程序放置在容器元素上。
我可以为此提出小解决方案。这不是最佳做法,但可以解决您的问题:
.HTML:
<div style="display:inline-block; position:relative;">
<input id="productUpdate" name="post[price]" type="text" disabled />
<div class="inputOverflow" style="position:absolute; left:0; right:0; top:0; bottom:0;"></div>
</div>
j查询:
$(".inputOverflow").click(function (evt) {
$(this).hide().prev("input[disabled]").prop("disabled", false).focus();
});
相关文章:
- 如何在单击“提交”按钮时为“新建”窗口编写JavaScript,用“确定”和“取消”显示注册信息
- 未在 jquery 中通过手动鼠标单击注册单击
- 单击按钮时切换html登录/注册表单
- 空格单击“未注册”
- 我需要一个注册按钮,它可以将数据发送到mySQL服务器,也可以在单击时重定向
- 注册'单击'事件与google.maps.event.addlistener(自动完成,..)
- Html链接在某些单击时未注册
- 单击跨度会导致模糊事件,该事件会移动跨度,使其不注册单击
- 注册单击列表项子元素
- 单击在焦点丢失之前注册的位置,但在焦点丢失后运行事件
- 如何为 ajax 加载的内容注册单击事件
- 通过单击按钮或表单提交禁用注册按钮,这两种方式都会阻止表单提交
- JQuery 按钮单击未注册
- 单击注册具有相同类名的多个按钮
- 如何在弹出窗口中单击注册或登录按钮后保持弹出
- 单击整个元素以注册单选按钮值
- 包含注册表单的Div在我单击提交后消失
- 添加显示星号的单击事件后,它不会注册单击的位置
- 在Jquery中单击未正确注册的函数
- 事件侦听器不会在某些类型的元素上注册单击事件