2014-06-19 31 views
0

我正在创建我的新应用程序,它是一个jQuery移动框架应用程序。我使用ajax来加载选项的多个选项。jquery mobile - 更改后选择菜单modificate值

比如我在代码中创建一个元素:

var select = $('<select name="someSelect" data-placeholder="false" class="select-additional" data-native-menu="false" />'); 

然后,我有一个Ajax调用,我的对象保存到VAR ajaxItems,我做一个循环,并添加选项来选择。

for(var i in ajaxItems){ 
    val option = $('<option val="'+ajaxItems[i].val+'">'+ajaxItems[i].val+' Days</option>'); 
    select.append(option); 
} 

现在,一切正常,jQuery使用选择呈现页面,并且它看起来不错。

但是我有一个问题:

我想让这样的事情:当选择,选项值用户点击必须设置为选择字符串,默认选项的文本设置,但我希望有一个值,例如,如果用户点击选项:

<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> 

和IM试图使类似的东西:

$('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移动之前,和jQuery移动覆盖我的文字...

我知道它的可能,因为我在另一个jQuery移动页面上看到它,但我需要一些回调后jQuery设置值...或者一些延迟?

+0

奇怪,上的jsfiddle其工作... http://jsfiddle.net/kudej/6gK44/ –

回答

0

好的,我找到了答案。 我看到问题出现在其他页面上,首先一切正常,我的方法会产生效果。 但在另一页,有没有效果,该解决方案页面上的化妆代码创建:

$(document).on("pagecreate", function() { 
      $('select').change(function() { 
       var value = $(this).val(); 
       var element = $(this); 
       element.prev().find('.select-additional').text(value); 
      }); 
}); 
相关问题