2014-06-19 39 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); 
      }); 
}); 
相關問題