2012-07-28 162 views
-2

開發與移動網絡應用:jQuery Mobile的滑塊事件

  • 的jQuery 1.7.1
  • 的jQuery移動1.1.1
  • 的Rails 3.2.1

在這裏,我打算將滑塊值更改爲時間指示器內容(<span id="wake_up_time_display">)。

以下作品直接調用目標URL。

但在很多場合,當jQuery mobile顯示<div data-role="page">時,指標保持不變。 (本身改變滑塊的值)。

<label class="select" for="daily_record_wakeup_time"> 
    I'll wake up at: 
</label> 
<span id="wake_up_time_display"> 6:00</span> 
<input data-theme="e" data-track-theme="d" id="daily_record_wakeup_time" 
     max="480" min="240" name="daily_record[wakeup_time]" step="15" 
     type="range" value="360" /> 

<script> 
    $("input[id='daily_record_wakeup_time']").live ("slidercreate", function() { 
     $("input[id='daily_record_wakeup_time']").bind ("change", function (event) { 
      $("#wake_up_time_display").text(Math.floor($(this).val()/60) + 
        ":"+($(this).val() % 60 < 10 ? "0":"")+$(this).val() % 60); 
     }); 
    }); 
</script> 

回答

0

你爲什麼不只是使用CSS選擇它

$("#daily_record_wakeup_time") 

,而不是在ID傳遞作爲一個屬性? 另外,如果您可以避免使用「live」方法,而改爲使用「委託」將會很好。 jQuery已經不贊成這種方法,它不再受新版本的支持。確保你的庫中某處有自定義事件「slidercreate」。

+0

謝謝,Caio! – umio 2012-07-28 08:56:59

+0

它與「.on()」和「pageinit」事件一起工作。 '$(文件)。在( 「pageinit」 功能(E){ \t $( 「#user_target_wakeup_time」)。在( 「變」,功能(E){ \t $( 「#跨度wake_up_time_display」) .text(Math.floor($(this).val()/ 60)+「:」+($(this).val()%60 <10?「0」:「」)+ $(this)。 val()%60); }); });' – umio 2012-07-28 08:58:37