Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将鼠标悬停在选择器上时禁用Jquery双击_Javascript_Jquery_Coffeescript_Mouseevent_Double Click - Fatal编程技术网

Javascript 将鼠标悬停在选择器上时禁用Jquery双击

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

我有一个功能,当用户双击一个水平列表时,该元素被移动到另一个div。这个无序列表中的li标记之一是文本输入字段。我只想禁用该特定字段上的双击行为。由于输入字段是ul元素的一部分,我似乎找不到一种方法来防止双击文本框时触发双击事件。这是我的。感谢js2coffee.org:)我接受咖啡脚本或常规javascript的答案

下面的代码将水平ul元素移动到另一个div,如果双击两次,则返回到原始元素。效果很好。当鼠标悬停在输入字段上时,如何临时禁用它

$(".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
参数添加到匿名函数中?