2011-12-27 44 views
2

id="a"というリンクを持つlistviewというダイナミックを作成しました。ListViewで選択された要素のインデックスを取得する方法JQUERYMOBILE

<ul id="accpmenu" data-role="listview" > 
</ul> 

$("#accpmenu").append('<li><a href='+ "#" + ' id="a" ">'+ this.textContent +'</a> </li>'); 

は今、私はこのlistviewからクリックした要素のインデックスを識別します。

$("#a").live("click",function(e) 
{ 
    //What should i write here to get the selected index?. 
} 

私は動的XMLをロードするために必要なインデックス番号が必要です。

解決にお役立てください。ここで

おかげ シャム

答えて

7
$('#accpmenu').on('click', ' > li', function() { 
    var selected_index = $(this).index(); 
}); 

はデモです:http://jsfiddle.net/w2JZU/

これはクリックのインデックスを見つけclickイベントに#accpmenuリストでリスト項目にイベントハンドラをバインドしますlist-item(他のlist-item要素と比較して)

$("#accpmenu").append('<li><a href='+ "#" + ' id="a" ">'+ this.textContent +'</a> </li>'); 

は(id属性の後に除去二重引用符に注意してください)に変更する必要があります:

​​ あなたのコード内のいくつかの無効なHTMLのように見えるものを持っているサイドノートでは

上記の例では、clickイベントハンドラをli要素に追加しました。クリックされた要素のインデックスを確認するのは簡単ですが、リスト内のリンクにもバインドすることができます。

$('#accpmenu').on('click', 'a', function() { 

    //this gets the index by finding the first parent list-item element and getting it's index compared do its siblings 
    var selected_index = $(this).parents('li').eq(0).index(); 
}); 

.on()は、jQuery 1.7で新しく追加されたもので、上記の場合は.delegate()(旧バージョンのもの)が置き換えられています。

+0

海、おかげけど私のページは動的に生成されているので、これは私の問題には作用しません。各ページに私はリストビューを持っていますそのリストビューで何かをクリックすると、changePage()を使用して2番目のページをロードする必要があります(ここでは2番目のページに移動していますが、ロードしていません)、2番目のpage.Yourサンプルスニペット静的リストに対しては有効ですが、動的にロードされる動的リストに対しては機能しません。 – shyamshyre

+0

Hai Jasper、以前私は、変更ページ($ .mobile.changePage( "aacp.html"、 "slideup");)を使用して、毎回異なるhtmlページを呼び出すために使用しますこのシナリオでは動作しませんでした今、これは現在動作しています。私は外部に呼び出されていないが、diffファイルのためのwokringではない理由を私に知らせることができます。 – shyamshyre

関連する問題