Javascript 将鼠标悬停在选择器上时禁用Jquery双击
我有一个功能,当用户双击一个水平列表时,该元素被移动到另一个div。这个无序列表中的li标记之一是文本输入字段。我只想禁用该特定字段上的双击行为。由于输入字段是ul元素的一部分,我似乎找不到一种方法来防止双击文本框时触发双击事件。这是我的。感谢js2coffee.org:)我接受咖啡脚本或常规javascript的答案 下面的代码将水平ul元素移动到另一个div,如果双击两次,则返回到原始元素。效果很好。当鼠标悬停在输入字段上时,如何临时禁用它Javascript 将鼠标悬停在选择器上时禁用Jquery双击,javascript,jquery,coffeescript,mouseevent,double-click,Javascript,Jquery,Coffeescript,Mouseevent,Double Click,我有一个功能,当用户双击一个水平列表时,该元素被移动到另一个div。这个无序列表中的li标记之一是文本输入字段。我只想禁用该特定字段上的双击行为。由于输入字段是ul元素的一部分,我似乎找不到一种方法来防止双击文本框时触发双击事件。这是我的。感谢js2coffee.org:)我接受咖啡脚本或常规javascript的答案 下面的代码将水平ul元素移动到另一个div,如果双击两次,则返回到原始元素。效果很好。当鼠标悬停在输入字段上时,如何临时禁用它 $(".available_product_shi
$(".available_product_shipments").on "dblclick", ".product", ->
$(this).appendTo ".product_shipments"
$(".product_shipments").on "dblclick", ".product", ->
$(this).appendTo ".available_product_shipments"
和JS等效物:
$(".available_product_shipments").on("dblclick", ".product", function() {
$(this).appendTo(".product_shipments");
});
$(".product_shipments").on("dblclick", ".product", function() {
$(this).appendTo(".available_product_shipments");
});
html的结构如下
<ul>
<li class="product">
<ul>
<li class="avail_qty_field"><input type="text /></li> #Prevent dblclick here
<li>...</li>
<li>...</li>
</ul>
</li>
<li class="product">
<ul>
<li class="avail_qty_field"><input type="text /></li> #Prevent dblclick here
<li>...</li>
<li>...</li>
</ul>
</li>
</ul>
-
#禁止单击此处
我不知道如何在coffee脚本中实现,但您只需要这样做
if ($(event.target).is("input")) return;
或者类似的东西
这是非coffescript版本:
$(".available_product_shipments").on("dblclick", ".product", function(e) {
if ($(e.target).is("input")) return;
$(this).appendTo(".product_shipments");
});
$(".product_shipments").on("dblclick", ".product", function(e) {
if ($(e.target).is("input")) return;
$(this).appendTo(".available_product_shipments");
});
这就是咖啡脚本中的样子
$(".available_product_shipments").on "dblclick", ".product", (e) ->
return if $(e.target).is("input")
$(this).appendTo ".product_shipments"
$(".product_shipments").on "dblclick", ".product", (e) ->
return if $(e.target).is("input")
$(this).appendTo ".available_product_shipments"
我不知道如何在咖啡剧本中做到这一点,但你只需要做到
if ($(event.target).is("input")) return;
或者类似的东西
这是非coffescript版本:
$(".available_product_shipments").on("dblclick", ".product", function(e) {
if ($(e.target).is("input")) return;
$(this).appendTo(".product_shipments");
});
$(".product_shipments").on("dblclick", ".product", function(e) {
if ($(e.target).is("input")) return;
$(this).appendTo(".available_product_shipments");
});
这就是咖啡脚本中的样子
$(".available_product_shipments").on "dblclick", ".product", (e) ->
return if $(e.target).is("input")
$(this).appendTo ".product_shipments"
$(".product_shipments").on "dblclick", ".product", (e) ->
return if $(e.target).is("input")
$(this).appendTo ".available_product_shipments"
试试这个
$(".available_product_shipments").on("dblclick", ".product", function(e) {
if( $(e.target.localName === 'input')) return;
$(this).appendTo(".product_shipments");
});
$(".product_shipments").on("dblclick", ".product", function(e) {
if( $(e.target.localName === 'input')) return;
$(this).appendTo(".available_product_shipments");
});
编辑:更正语法试试这个
$(".available_product_shipments").on("dblclick", ".product", function(e) {
if( $(e.target.localName === 'input')) return;
$(this).appendTo(".product_shipments");
});
$(".product_shipments").on("dblclick", ".product", function(e) {
if( $(e.target.localName === 'input')) return;
$(this).appendTo(".available_product_shipments");
});
编辑:更正语法而不是在事件发生后过滤事件,我将使用“”过滤器将其过滤掉。从下面的示例中,我没有将事件挂接到“text”输入类型上,而是挂接到“password”类型上 HTML
<div class="collection">
<input class="product" type="text" />
<input class="product" type="password" />
</div>
JsFiddle
请在此处查看它的实际操作:我将使用“”过滤器将其过滤掉,而不是在事件发生后对其进行过滤。从下面的示例中,我没有将事件挂接到“text”输入类型上,而是挂接到“password”类型上 HTML
<div class="collection">
<input class="product" type="text" />
<input class="product" type="password" />
</div>
JsFiddle
在这里查看它的实际操作:我不知道如何在coffee脚本中执行它,但您只需要执行
if($(event.target).is(“input”))return代码>或类似的东西。@KevinB:将其作为答案发布。我不知道如何在coffee脚本中执行,但您只需要执行if($(event.target).is(“input”))return代码>或类似的东西。@KevinB:把它作为答案贴出来。既然你先回答了,我就给你评分。不知道为什么堆栈溢出会将您的答案放在底部。之所以放在底部,是因为首先显示最新的答案更有意义,否则您可能不会注意到新的答案或修改的答案。您可以通过单击顶部的“最旧”而不是“活动”来更改它。@ctilley79出于好奇,您如何使用coffeescript将e
参数添加到匿名函数中?因为您首先回答了问题,所以我给了您分数。不知道为什么堆栈溢出会将您的答案放在底部。之所以放在底部,是因为首先显示最新的答案更有意义,否则您可能不会注意到新的答案或修改的答案。您可以通过单击顶部的“最旧”而不是“活动”来更改它。@ctilley79出于好奇,您如何使用coffeescript将e
参数添加到匿名函数中?