2012-05-27 51 views
9

Tôi đang tìm cách giải quyết các danh sách lồng nhau đang làm mới với phiên bản 1.1 của jquery Mobile hiện đang để lại cho bạn một trang trống.Giải pháp làm mới danh sách lồng nhau jQuery Mobile

Tôi biết một giải pháp hiện có là kích hoạt pushState nhưng nó sẽ đưa bạn trở lại gốc của danh sách và các đinh vít với trạng thái lịch sử trong chế độ xem danh sách lồng nhau tiếp theo của bạn.

Giải pháp tôi đã đưa ra với bên dưới không đẹp nhưng hoạt động trên iOS và Android mới hơn.

$(document).bind("mobileinit", function(){ 

var urlEx = '#&ui-page=5-0'; //ending of nested list url 

if (window.location.href.indexOf(urlEx) != -1){ 

    history.replaceState("", "0", "index.php"); 
    setTimeout("window.location.href='https://FULLURL#/FULLURL&ui-page=5-0'",100); 
} 

window.history.pushState("", "0", "index.php"); 

}); 

Tôi nhận ra rằng pushState và replaceState không được hỗ trợ bởi tất cả các trình duyệt và rằng tôi có thể cố gắng sử dụng:

window.location.href = window.location.href.substring(0,window.location.href.indexOf('#')); 

thay nhưng nó trở nên choppier nhiều trải nghiệm người dùng.

Tôi hy vọng một người nào đó có thể làm sáng tỏ những gì có thể được thực hiện tốt hơn hoặc cách nó có thể được thực hiện tốt hơn/đáng tin cậy hơn.

+0

Nếu bạn lo lắng về độ tin cậy tại sao bạn không sử dụng một phiên bản ổn định của JQM? – codaniel

+0

Sai lầm của tôi. Tôi đề cập 1.1 Tự mình đi trước :) – chris

+3

Bạn có thể cung cấp mã HTML để chúng tôi có thể tìm cách giải quyết các cách giải quyết có thể xảy ra không? –

Trả lời

1

$("#<mySelector>").listview("refresh");

hoặc

$("#<mySelector>").refresh("listview");

Trừ khi tôi là hoàn toàn mis-hiểu câu hỏi của bạn, bạn sẽ có thể sử dụng một trong các dòng ở trên để cập nhật danh sách mà bạn đang thêm đến nơi <mySelector> là bất kỳ công cụ chọn tương thích JQuery nào sẽ trả về chế độ xem danh sách của bạn.

1

Mã này đã làm việc cho tôi:

$("#newList").append("<li class='ui-li-desc'><div><b>"+data[i].Title+":</b></div><small><div class='ui- li-desc'>"+data[i].Content+"</div></small></li>"); 

$("#newList").listview("refresh"); 

Đây #newlist là ID cho ul và dữ liệu là một đối tượng.

Các vấn đề liên quan