jQuery UI LISTVIEW没有刷新

时间:2013-06-25 21:52:51

标签: jquery jquery-ui listview jquery-ui-sortable

使用jQuery UI(w / jquery 1.9.1)。我有一个可排序的列表。我正在通过表单添加dom元素。用户单击按钮,将出现一个对话框。用户在文本框中键入文本,然后单击“添加页面”。新列表项将附加到列表中。问题是listview没有包含正确的CSS。

Heres a JSfiddle - > http://jsfiddle.net/RQKng/1/

在您单击红色按钮之前,您可以在列表项之间单击,并注意所选列表项变为蓝色。但是,任何新项目都不会变成蓝色。

我试过了:

$('#pageList ul').trigger('create').listview('refresh');

但我接到一个错误,即'对象没有方法'listview“'

1 个答案:

答案 0 :(得分:1)

1:问题在于这一行:

$('.page').click(function() {
        $('.page').removeClass('selected');
        $(this).addClass('selected');
    });

2:解决方案在这里:jsFiddle

3:一些解释:

因为您拥有事先不知道的动态元素,所以必须让jQuery知道这一点。来自jQuery docs

  

事件处理程序仅绑定到当前选定的元素;他们   在您的代码调用.on()时页面上必须存在。

你想要的是这个:

Delegated events have the advantage that they can process events from descendant 
elements that are added to the document at a later time. 

解决方案:

$('.item-list').on("click","li",function() {
    $('.page').removeClass('selected');
    $(this).addClass('selected');
});