javascript - Appgyver - 单击时的 JQuery 不适用于动态写入的项目

标签 javascript jquery steroids appgyver supersonic

我正在使用 appgyver (javascript) 编写单页应用程序。有许多列表是使用 javascript 动态编写的(在外部 API 调用之后)。每个列表都包含一个项目,当单击/按下时,我想触发不同的 js 方法。

  function write_a_list(some_array)
    {
        $('#some_list').html("");

        for ( indexor =0; indexor < some_array.length; indexor++)
          {
              var this_option_div = $('<div>');
              this_option_div.addClass('item');
              this_option_div.addClass('some_list_item');
              this_option_div.html("Button: " + indexor);
              $('#some_list').append(this_option_div);
          }
    }

  $(document).on('click', '.some_list_item', function()
  {
    supersonic.logger.debug('some_list_item clicked');
    alert('some_list_item clicked');
  });

例如,一个数组被传递给write_a_list函数。如果单击某个项目,则应检测到它并发出警报。但是,未观察到此行为。有没有一种方法可以使用 jquery 'on' 方法来实现?

最佳答案

您正在使用 this_option_div.addClass('some_list_item'); 然后在可能不存在的 ID 上调用点击事件。

将其更改为:

$(document).on('click', '.some_list_item', function() { ... }

EDIT ////

你能试试最接近的不是动态的父选择器而不是文档吗?

$('.static-wrapper').on('click', '.some_list_item', function() { ... }

关于javascript - Appgyver - 单击时的 JQuery 不适用于动态写入的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32378985/

相关文章:

javascript - 将字符添加到值中

Jquery 按复选框状态对表列进行排序

javascript - Angular JS 从静态到 ng-repeat

javascript - 使用 native javascript 查找包含特定 CSS 类的第一个数组元素的索引

javascript - 用户登录后 Meteor 重新渲染模板

javascript - 让第三级子菜单出现在 jquery 中

javascript - AngularJS - 尝试信任需要字符串 : Context: html 的内容中的非字符串值

javascript - 如何向Appgyver中的View添加webview

javascript - 使用 JavaScript 检测浏览器窗口 "Maximized"/"Minimized "

javascript - 如何在 Ember 计算属性中返回 Ajax 数据