0

jQuery UI の使用 (jquery 1.9.1 を使用)。ソート可能なリストがあります。フォームから dom 要素を追加しています。ユーザーがボタンをクリックすると、ダイアログが表示されます。ユーザーがテキスト ボックスにテキストを入力し、[ページを追加] をクリックします。新しいリスト項目がリストに追加されます。問題は、リストビューに適切な CSS が含まれていないことです。

JSfiddle はこちら --> http://jsfiddle.net/RQKng/1/

赤いボタンをクリックする前に、リスト項目の間をクリックすると、選択したリスト項目が青に変わることに注意してください。ただし、新しいアイテムは青くなりません。

私は試した:

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

しかし、「オブジェクトにはメソッド "listview" がありません」というエラーが表示されます。

4

1 に答える 1

1

1: 問題は次の行にあります:

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

2: 解決策はこちら: jsFiddle

3: いくつかの説明:

事前にわからない動的要素があるため、jQuery にそれを認識させる必要があります。jQueryドキュメントから:

イベント ハンドラーは、現在選択されている要素にのみバインドされます。これらは、コードが .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');
});
于 2013-06-26T10:39:49.657 に答える