我在动态插入滑块。问题是,当我动态地插入它们时,它们没有jquerymobile的主题。下面是我使用的代码:
for (var i = array_colors_available.length - 1; i >= 0; i--) {
$('#insert_colors_slider').append('<div data-role="fieldcontain" ><fieldset data-role="controlgroup"> <label for="slider-8">'+array_colors_available[i]+' : '+'</label><input id=slider-'+i+' type="range" name='+array_colors_available[i]+' value="0" min="0" max="25" data-highlight="true" data-theme=c data-track-theme="f"></fieldset></div>');
if(array_slider_info_value != null) $('#slider-'+i).val(array_slider_info_value[i+1].value);
};

如果我使用JQueryMobile的方法,屏幕上会出现两个滑块:
for (var i = array_colors_available.length - 1; i >= 0; i--) {
$('#insert_colors_slider').append('<div data-role="fieldcontain" ><fieldset data-role="controlgroup"> <label for="slider-8">'+array_colors_available[i]+' : '+'</label><input id=slider-'+i+' type="range" name='+array_colors_available[i]+' value="0" min="0" max="25" data-highlight="true" data-theme=c data-track-theme="f"></fieldset></div>');
$('#slider-'+i).slider();
if(array_slider_info_value != null) $('#slider-'+i).val(array_slider_info_value[i+1].value);
};

我做错了什么?当我不使用这些方法时,没有主题,当我使用它时,我有两个滑块而不是一个……谢谢!
发布于 2013-03-30 01:45:33
这只是jQuery移动端的一个bug。在你的代码中也有一个错误,标签必须指向正确的滑块,在你的例子中它不是一个案例。
动态滑块可以通过两种方式创建,它们都不包含slider()方法:
示例1
在pagebeforecreate或pagecreate事件期间执行此操作。
工作示例:http://jsfiddle.net/Gajotres/caCsf/
$(document).on('pagebeforeshow', '#index', function(){
// Add a new input element
$('[data-role="content"]').append('<input type="range" name="slider-2" id="slider-2" value="25" min="0" max="100" />');
});示例2
在pagebeforeshow或pageshow事件期间执行此操作,并使用trigger('create')设置滑块的样式。
工作示例:http://jsfiddle.net/Gajotres/NwMLP/
$(document).on('pagebeforeshow', '#index', function(){
// Add a new input element
$('[data-role="content"]').append('<div data-role="fieldcontain"></div>');
$('[data-role="fieldcontain"]').append('<fieldset data-role="controlgroup"></fieldset>');
$('[data-role="controlgroup"]').append('<label for="slider-2">Slider 2</label>');
$('[data-role="controlgroup"]').append('<input type="range" name="slider-2" id="slider-2" value="25" min="0" max="100" />');
// Enhance new input element, unfortunately slider() function is not goinf to work correctly
//$('[type="range"]').slider();
$('#index').trigger('create');
});在这个例子中,如果我们尝试使用slider(),那么除了输入框之外,所有的东西都将是样式的。
有关这方面的更多信息和其他相关内容,可以在我的其他中找到,或者找到它的。
https://stackoverflow.com/questions/15708297
复制相似问题