0

我从服务器返回一个 json 数组,然后循环遍历它并将按钮 (data-role="button") 添加到页面。我在每次迭代中调用 $("a[data-role='button']").button() 。

我的问题是每个按钮都需要调用相同的事件处理程序但具有不同的 id。如果我在 Java/GWT 中执行此操作,我会将 id 传递给每个按钮的事件处理程序的自定义实现的构造函数。

我将如何在 JQuery Mobile 中实现相同的目标?

下面的代码创建了两个按钮,但是当我单击它们时没有任何反应。

这是我的代码:

success: function(data) {
                $('#personPage div[data-role="content"]').empty();
                for (var i = 0;i < data.length;i++){
                    $('#personPage div[data-role="content"]').append('<a href="#" id="person_' + data[i].id + '" data-role="button"  data-id="person_' + data[i].id + '">' + data[i].name + '</a>');
                    $("a[data-role='button']").button();
                    $("#person_" + data[i].id).bind('click', function(event) {
                          alert('It WOrks');
                        });
                    });
                }
            }

4

1 回答 1

1

添加按钮时(构建要附加的 html),还要添加一个 data-id 属性,其值为 JSON 数组中的 id。所以 html 标签最终看起来像这样:

<a data-role="button" data-id="1234">1234 Button</a>

在 onclick 事件处理程序中获取这样的 id:

var id = $(this).data('id');

而已。

请参阅http://api.jquery.com/data/以阅读有关数据属性的更多信息。

于 2012-08-15T08:02:30.820 回答