2012-02-21 112 views
0

我正在編寫一個JQuery移動應用程序。在這個應用程序中,我需要動態構建一個滑塊列表。每當我構建我的列表時,只會呈現傳統的HTML樣式下拉列表。我想要呈現JQuery移動滑塊。在試圖動態地建立這個名單,我已經寫了下面的:JQuery Mobile Slider將無法正確渲染

$.each(result.Results, function (i, r) { 
    var s = "<li><div data-role='fieldcontain'><label for='person" + i + "'>" + r.FullName + "</label>"; 
    s += "<select name='person" + i + "' id='person" + i + "' data-role='slider'>"; 
    s += "<option value='false' selected='selected'>No</option><option value='true'>Yes</option>"; 
    s += "</select></div></li>"; 

    $("#personList").append(s); 
    }); 
    $("#personList").listview("refresh"); 

    var sliders = $("#personList [data-role=slider]"); 
    for (var i = 0; i < sliders.length; i++) { 
    sliders[i].slider(); 
    } 

當執行代碼時,我得到一個JavaScript錯誤,說:

遺漏的類型錯誤:對象#有沒有方法'slider'

如果我不使用「滑塊[i] .slider();」代碼,傳統的HTML下拉列表仍然呈現,而不是JQuery Mobile滑塊。有人可以幫助確定我做錯了什麼嗎?

謝謝!

回答

1

我認爲你需要創建一個新的jQuery對象在使用這樣的循環,當...

var sliders = $("#personList [data-role=slider]"); 
    for (var i = 0; i < sliders.length; i++) { 
    $(sliders[i]).slider(); 
    } 

See this post for more info(更具體地說是從SLaks答案)

當然,你可以得到通過不使用循環在所有反正...

$("#personList [data-role=slider]").slider(); 
+1

它總是小事:)。謝謝你,是的,繆斯岩石。 – 2012-02-21 14:49:48

0

其實,你不需要是for環statement.You可以撥打使用此語句的所有滑塊上的方法;

$("#personList [data-role=slider]").slider();