Javascript 停止元素的所有事件
我想停止输入、选择、文本区域的所有事件。若点击或聚焦输入框时发生事件,则该事件不应工作。当我点击输入框时,不应该触发任何事件。不应关注输入或文本区域。如果我单击select,那么它将不会打开(不要禁用它,请使用preventDefault()),我还需要一个按钮,单击该按钮时,我们停止的事件将再次工作Javascript 停止元素的所有事件,javascript,jquery,html,Javascript,Jquery,Html,我想停止输入、选择、文本区域的所有事件。若点击或聚焦输入框时发生事件,则该事件不应工作。当我点击输入框时,不应该触发任何事件。不应关注输入或文本区域。如果我单击select,那么它将不会打开(不要禁用它,请使用preventDefault()),我还需要一个按钮,单击该按钮时,我们停止的事件将再次工作 首先: 第二: 1. 2. 3. 第三: 大家好 第四: $(.test1”)。在(“单击”上,函数(e){ 警报(“点击测试1”); }); $(“.test2”)。在(“单击”,函数(e
首先:
第二:
1.
2.
3.
第三:
大家好
第四:
$(.test1”)。在(“单击”上,函数(e){
警报(“点击测试1”);
});
$(“.test2”)。在(“单击”,函数(e){
警报(“单击test2”);
});
$(“.test3”)。在(“单击”,函数(e){
警报(“单击test3”);
});
$(“.test4”)。在(“单击”,函数(e){
警报(“单击test4”);
});
$(“输入”)。在(“单击”)上,函数(e){
警报(“点击输入”);
});
$(“输入”).bind(“单击”),函数(e){
警报(“点击输入(绑定)”;
});
$(“输入”).hover(函数(e){
警报(“悬停在输入端”);
});
$(“输入”)。关于(“焦点”,函数(e){
警报(“关注输入”);
});
你可以用这样的东西
var enabled = false;
$('input, textarea, select ').on('mousedown click focus', function(e) {
if(!enabled){
e.preventDefault();
this.blur();
window.focus();
}
});
$("#enable-btn").on("click", function(e){
enabled = !enabled;
var text = $(this).val();
$(this).val(text == "Enable" ? "Disable" : "Enable");
});
评论后编辑 要防止附加到事件的其他功能,需要检查状态是否已禁用。 这里是更新后的示例 HTML
<input type="text" id="id1" />
<select>
<option val="0">Val 0</option>
<option val="1">Val 1</option>
<option val="2">Val 2</option>
</select>
<textarea rows="4" cols="50"></textarea>
<input type="button" id="enable-btn" value="Enable" />
<div id="log"></div>
为什么不想禁用这些元素?你所描述的行为正是它所做的<代码>$(元素).prop('disabled',true)代码>如果您担心的话,您可以在表单提交之前重新启用元素。可能的重复项,但是如果我在输入元素或任何其他元素上单击使用,那么它也应该不起作用$('input')。关于('click',函数(e){alert('hi');});
var enabled = false;
$('input, textarea, select ').on('mousedown click focus', function(e) {
if(!enabled){
e.preventDefault();
this.blur();
window.focus();
}
});
$("#enable-btn").on("click", function(e){
enabled = !enabled;
var text = $(this).val();
$(this).val(text == "Enable" ? "Disable" : "Enable");
});
$("select").on("click",function(e){
if (!enabled){
e.preventDefault();
return false;
}
$("#log").html("Select clicked");
});
$("input").on("click",function(e){
if (!enabled){
e.preventDefault();
return false;
}
$("#log").html("Input clicked");
});