我正在创建我的新应用程序,它是一个jQuery移动框架应用程序。我使用ajax加载多个带选项的选项。
例如,我在代码中创建了一个元素:
var select = $('<select name="someSelect" data-placeholder="false" class="select-additional" data-native-menu="false" />');
然后我有一个ajax调用,我将对象保存到var ajaxItems,我创建一个循环并将选项添加到select。
for(var i in ajaxItems){
val option = $('<option val="'+ajaxItems[i].val+'">'+ajaxItems[i].val+' Days</option>');
select.append(option);
}
现在,一切正常,jQuery使用选择渲染页面,看起来不错。
但我有一个问题:
我想做类似的事情:当用户点击选择时,必须在select中将选项值设置为字符串,默认选项的文本已设置,但我想要一个值,例如,如果用户点击选项:< / p>
<option value="1">1 day</option>
我想将选择字符串设为1,而不是1天,因为我有一个非常小的选择输入,而单位(天)并不重要......
jQuery移动呈现代码:
<div class="ui-select">
<a href="#select-27-listbox" role="button" id="select-27-button" aria-haspopup="true" class="ui-btn ui-btn-a ui-corner-all ui-shadow" data-rel="popup"><span class="select-additional">4 Tage</span></a>
<select data-native-menu="false" data-id="4084" data-icon="false" data-theme="a" class="select-additional" data-placeholder="false" tabindex="-1">
<option value="0">0 </option>
<option value="1">1 Tag</option>
<option value="2">2 Tage</option>
<option value="3">3 Tage</option>
<option value="4">4 Tage</option>
<option value="5">5 Tage</option>
</select>
</div>
我试图做出类似的事情:
$('ui-select').change(function(
$(this).prev().find(span.select-additional).text($(this).val());
));
但是它没有在标签上做出改变,我有90%的确定性,我做得很好,在日志对象$(this).prev().find(span.select-additional).text()
时,它向我显示一个值,但在更改前的值!例如,如果我拿起1,它显示0,那么当我拿起2时,它显示1。
我认为问题是:我试图改变价值,但在jQuery mobile之前,jQuery mobile会覆盖我的文字...
我知道这是可能的,因为我在另一个jQuery移动页面上看到了它,但是在jQuery设置值之后我需要一些回调...或者有些延迟?
答案 0 :(得分:0)
好的,我找到了答案。 我看到问题出现在其他页面上,首先一切正常,我的方法产生效果。 但在另一个页面上,没有任何效果,页面上的make代码创建的解决方案:
$(document).on("pagecreate", function () {
$('select').change(function () {
var value = $(this).val();
var element = $(this);
element.prev().find('.select-additional').text(value);
});
});