Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.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 委托点击事件不发生';t火_Javascript_Jquery_Html_Jquery Ui_Events - Fatal编程技术网

Javascript 委托点击事件不发生';t火

Javascript 委托点击事件不发生';t火,javascript,jquery,html,jquery-ui,events,Javascript,Jquery,Html,Jquery Ui,Events,我正在开发一个web应用程序。你可以找到这个网站 如果单击“道路”图标,在菜单打开加号(“+”)后,将显示带有标签的文本输入。这个正在使用插件,当然,可以在输入后对地址进行排序 我想在这些地址字段的标签上添加一个单击事件,这样当用户单击号码时,就会出现一个对话框,他/她可以在其中手动编辑号码(如果有数百个地址,可能会产生一些反作用) 由于标签和输入是稍后创建的元素,因此我尝试委托click事件,如下所示: $(document.body).on('click', '.control-label

我正在开发一个web应用程序。你可以找到这个网站

如果单击“道路”图标,在菜单打开加号(“+”)后,将显示带有标签的文本输入。这个
正在使用插件,当然,可以在输入后对地址进行排序

我想在这些地址字段的标签上添加一个单击事件,这样当用户单击号码时,就会出现一个对话框,他/她可以在其中手动编辑号码(如果有数百个地址,可能会产生一些反作用)

由于标签和输入是稍后创建的
  • 元素,因此我尝试委托click事件,如下所示:

    $(document.body).on('click', '.control-label', function () {
        console.log($(this));
    });
    
    然而,事件从未发生。我开始想,也许可排序插件会将我的事件禁用到该标签

    这是地址字段的HTML代码(标签+输入+删除按钮)

  • 1. ×
    • 是添加新行的addWaypoint()函数。每当用户单击+按钮时,就会调用该函数


      编辑:显然不是可排序的插件,而是阻止点击事件的其他东西。有人有什么想法吗?

      您需要设置一个与每个控件标签类相关的变量,以便对其进行console.log(或警报,或以任何方式使用)

      以下是我建议您修改javascript的方式:

      $(document.body).on('click', '.conrtol-label', function () {
          var spanText=$(this).text();
          console.log($(this));
          alert(spanText);
      });
      
      也许这把小提琴会有帮助:


      修改为使用li的

      ,我刚刚在JSFIDLE中测试了它,它可以工作。一定是其他东西禁用了单击event@RiceJunkie我知道在Chrome的开发者控制台中有一种方法可以查看元素上附加了哪些事件,但我不知道如何检查。你有什么想法吗?你可以在开发者工具中选择你的元素,在右边列出你的css样式的地方有一个事件标签listeners@TrisztánThar我已经检查过了-您可以看到jQuery在不同的点上连接了自己。这很有意义——您没有将代码直接附加到
      单击
      ,只是要求jQuery在事件发生时调用您的函数。我现在正试图重新说明JSFIDLE上的实际问题……OP说事件一开始没有触发——这将如何帮助事件触发?
      
      $(document.body).on('click', '.conrtol-label', function () {
          var spanText=$(this).text();
          console.log($(this));
          alert(spanText);
      });