这是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');
});
但这里没有任何反应。为什么会这样,以及如何解决它
答案 0 :(得分:2)
要在Ajax加载的内容上有一个click事件,您必须在容器上注册该事件。我会做这样的事情:
$(document).on('click', '#eventDrive', function() {
alert('test');
});
这样点击侦听器将在整个文档中注册,每次单击它都会检查是否单击#eventDrive,即使在注册侦听器时该元素不存在。 / p>
答案 1 :(得分:0)
您需要使用以下内容:
$(document).on('click', '#eventDrive', function() {
alert('test');
});
答案 2 :(得分:0)
禁用的元素不会触发鼠标事件。大多数浏览器会将源自禁用元素的事件传播到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>
<强> jQuery的:强>
$(".inputOverflow").click(function (evt) {
$(this).hide().prev("input[disabled]").prop("disabled", false).focus();
});