1

我正在使用 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' 方法来实现?

4

1 回答 1

2

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

将其更改为:

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

编辑 ////

您可以尝试使用非动态而不是文档的最接近的父选择器吗?

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

于 2015-09-03T15:49:43.550 回答