jQuery 事件侦听器粘住/级联?

迈克16889

在我的网络应用程序上,我有一个屏幕,希望用户使用条形码扫描仪来扫描项目编号,但如果他们没有(或代码无法扫描),他们可以单击要求他们扫描的通知,它会变成一个框,允许他们输入详细信息以手动搜索。

问题是,事件侦听器似乎应用于关闭按钮,它从 div 中删除,但关闭按钮似乎调用“打开搜索框”功能而不是“关闭搜索框”功能

我尝试使用 jQuery$('#id').one('click' function(){myFunctionHere();});函数在单击 DIV 时添加事件侦听器,也尝试使用$('#id').on('click' function(){myFunctionHere();});$('#id').off('click');但我遇到了同样的问题。

查看jsfiddle

<head>
<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
<style>
#tnt-searchScan{
  width: 300px;
  height: 100px;
  border: 5px dashed red;
  text-align: center;
}
</style>
<script>
$(document).ready(function(){
    $('#tnt-searchScan').one('click', function(){showSearchBox();});
})

function closeSearchBox(){
  var html = '<h4>Scan barcode</h4><h4>or click here to search</h4>';
  $('#tnt-searchScan').html(html).one('click', function(){showSearchBox();});
}

function showSearchBox(){
  console.log('test');
  var html = 'Content of search box<button type="button" id="tnt-closeSearchBox">Close</button>';
  $('#tnt-searchScan').html(html);
  $('#tnt-closeSearchBox').one('click', function(){closeSearchBox();});
}
</script>
</head>
<body>
<div id="tnt-searchScan"><h4>Scan barcode</h4><h4>or click here to search</h4></div><div id="tnt-mainPage"><div class="loader"></div> </div>
</body>

我希望该框恢复正常,但它不会,如果您检查控制台,每次单击“关闭”时都会出现“测试”,表示调用了 show 函数。如果我调用“closeSearchBox();” 手动它工作正常。

苏金德·辛格 |

你需要在你的 js 中做一些改变。首先.one更改为.on第二个需要更改关闭功能单击事件,因为搜索表单是用js添加到dom的,因此您需要像这样在其上触发click事件$(document).on('click','#tnt-closeSearchBox', function(){ closeSearchBox(); });

$(document).ready(function(){
    $('#tnt-searchScan').on('click', function(){showSearchBox();});
})

function closeSearchBox(){
  var html = '<h4>Scan barcode</h4><h4>or click here to search</h4>';
  $('#tnt-searchScan').html(html).on('click', function(){showSearchBox();});
}

function showSearchBox(){
  //console.log('test');
  var html = '<label>Search By: <select id="tnt-searchOption">' +
      '<option selected>ID</option>' +
      '<option>Legacy ID</option>' +
      '</select></label>' +
      '<label>Search: <input type="text" id="tnt-searchBox"></label>' +
      '<button type="button">Search</button><button type="button" id="tnt-closeSearchBox">Close</button>';
  $('#tnt-searchScan').html(html);
}
  $(document).on('click','#tnt-closeSearchBox', function(){closeSearchBox();});
#tnt-searchScan{
  width: 300px;
  height: 100px;
  border: 5px dashed red;
  text-align: center;
}
<head>
<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
</head>
<body>
<div id="tnt-searchScan"><h4>Scan barcode</h4><h4>or click here to search</h4></div><div id="tnt-mainPage"><div class="loader"></div> </div>
</body>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

jQuery事件侦听器多次触发

来自分类Dev

jQuery中的单击事件侦听器

来自分类Dev

jQuery DataTables的on()事件侦听器,具有多个事件

来自分类Dev

是否有 jQuery 的 .load(); 的 jQuery 事件侦听器?

来自分类Dev

dispatchEvent不触发jQuery.on()事件侦听器

来自分类Dev

使用Jquery禁用文本框内的事件侦听器

来自分类Dev

jQuery与.html()类似,但不删除事件侦听器

来自分类Dev

jQuery中的多个链接的.on('click')事件侦听器

来自分类Dev

jQuery:一次创建多个事件侦听器?

来自分类Dev

jQuery-添加新的div事件侦听器

来自分类Dev

事件侦听器并不总是调用 jquery ui 图标

来自分类Dev

如何使用jquery .each()添加单个事件侦听器?

来自分类Dev

JQuery click() 事件侦听器不起作用

来自分类Dev

jQuery动态调用事件侦听器

来自分类Dev

jQuery自定义事件侦听器

来自分类Dev

是否可以在 if 语句中嵌套 jQuery 事件侦听器?

来自分类Dev

jQuery在不同的DOM层次结构中委派的事件侦听器-是否会触发适用的事件侦听器?

来自分类Dev

如何从父级中删除jQuery事件侦听器而不删除类似的侦听器?

来自分类Dev

为多个元素添加事件侦听器并检测哪个元素触发事件 - jQuery

来自分类Dev

使用事件侦听器在不使用jquery的情况下触发keypress事件

来自分类Dev

jQuery事件名称空间中所有事件的一个侦听器?

来自分类Dev

jQuery为单击事件的.on侦听器获取子选择器的值

来自分类Dev

jQuery-将事件侦听器添加到动态创建的按钮

来自分类Dev

有没有办法组合这些类似的 jQuery 事件侦听器功能?

来自分类Dev

在JQuery中迭代数组中的新事件侦听器

来自分类Dev

如何使用 jQuery 在类构造函数上添加事件侦听器?

来自分类Dev

使用.on()事件的变量,自定义jQuery插件中的侦听器不会触发

来自分类Dev

jQuery事件侦听器在动态列表项上多次调用

来自分类Dev

jQuery-如何为动态添加的可放置表格行实现事件侦听器?

Related 相关文章

  1. 1

    jQuery事件侦听器多次触发

  2. 2

    jQuery中的单击事件侦听器

  3. 3

    jQuery DataTables的on()事件侦听器,具有多个事件

  4. 4

    是否有 jQuery 的 .load(); 的 jQuery 事件侦听器?

  5. 5

    dispatchEvent不触发jQuery.on()事件侦听器

  6. 6

    使用Jquery禁用文本框内的事件侦听器

  7. 7

    jQuery与.html()类似,但不删除事件侦听器

  8. 8

    jQuery中的多个链接的.on('click')事件侦听器

  9. 9

    jQuery:一次创建多个事件侦听器?

  10. 10

    jQuery-添加新的div事件侦听器

  11. 11

    事件侦听器并不总是调用 jquery ui 图标

  12. 12

    如何使用jquery .each()添加单个事件侦听器?

  13. 13

    JQuery click() 事件侦听器不起作用

  14. 14

    jQuery动态调用事件侦听器

  15. 15

    jQuery自定义事件侦听器

  16. 16

    是否可以在 if 语句中嵌套 jQuery 事件侦听器?

  17. 17

    jQuery在不同的DOM层次结构中委派的事件侦听器-是否会触发适用的事件侦听器?

  18. 18

    如何从父级中删除jQuery事件侦听器而不删除类似的侦听器?

  19. 19

    为多个元素添加事件侦听器并检测哪个元素触发事件 - jQuery

  20. 20

    使用事件侦听器在不使用jquery的情况下触发keypress事件

  21. 21

    jQuery事件名称空间中所有事件的一个侦听器?

  22. 22

    jQuery为单击事件的.on侦听器获取子选择器的值

  23. 23

    jQuery-将事件侦听器添加到动态创建的按钮

  24. 24

    有没有办法组合这些类似的 jQuery 事件侦听器功能?

  25. 25

    在JQuery中迭代数组中的新事件侦听器

  26. 26

    如何使用 jQuery 在类构造函数上添加事件侦听器?

  27. 27

    使用.on()事件的变量,自定义jQuery插件中的侦听器不会触发

  28. 28

    jQuery事件侦听器在动态列表项上多次调用

  29. 29

    jQuery-如何为动态添加的可放置表格行实现事件侦听器?

热门标签

归档