Jquery mobile 在jQuery Mobile中更改页面后从slider事件接收事件

Jquery mobile 在jQuery Mobile中更改页面后从slider事件接收事件,jquery-mobile,jquery,jquery-mobile-slider,Jquery Mobile,Jquery,Jquery Mobile Slider,在PhoneGap应用程序中,我通过$.mobile.changePage()函数导航到html页面 目标页面包含一个滑块输入元素 我想在更改滑块后计算所选的值,但我不知道如何接收事件 我查阅了jQM演示页面的示例,但它不起作用 以下是包含slider元素的目标页面的代码: <!DOCTYPE html> <html> <head> <title>Home</title> <meta name="apple-mobile-

在PhoneGap应用程序中,我通过
$.mobile.changePage()
函数导航到html页面

目标页面包含一个滑块输入元素

我想在更改滑块后计算所选的值,但我不知道如何接收事件

我查阅了jQM演示页面的示例,但它不起作用

以下是包含slider元素的目标页面的代码:

<!DOCTYPE html>
<html>
<head>
  <title>Home</title>
  <meta name="apple-mobile-web-app-capable" content="yes" />
  <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height" />
  <meta name="format-detection" content="telephone=no" />

  <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.css" />

  <script type="text/javascript" src="../cordova/cordova-2.7.0-android.js"></script>

  <script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
  <script type="text/javascript" src="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.js"></script>

  //WRONG RECEIVING SCRIPT?
  <script type="text/javascript">
    $("#volume-slider").on("stop", function (event) {
      var value = event.target.value;
      alert("User has finished sliding my slider, final value: " + value);
    });
  </script>

</head>
<body>
  <div id="homeContainer" data-role="page">
  <div data-role="content">
        <label for="slider-fill">Lautstärke:</label>
        <input id="volume-slider" type="range" name="slider-fill" value="50" min="0" max="100" data-highlight="true" />
  </div>
  </div>
</body>
</html>

家
//错误的接收脚本?
$(“#音量滑块”)。打开(“停止”,函数(事件){
var值=event.target.value;
警报(“用户已完成滑动我的滑块,最终值:“+值”);
});
劳茨塔克:
是否我必须将接收脚本放在其他地方?因为它似乎没有被执行


谢谢你,Max你的代码中有几个错误:

工作示例:

  • 如果要绑定事件,必须在正确的页面事件期间执行,在这种情况下使用
  • slidestop
    是检测滑块移动结束的正确事件
  • 如果您使用多个
    HTML
    页面格式,并且如果此页面不是初始的
    HTML
    ,则此javascript将被丢弃。当jQuery Mobile加载新的
    页面时,它只加载
    正文
    内容,并丢弃其余内容。阅读更多

  • 谢谢,这个解决方案似乎是可行的。你是对的,我正在使用多个HTML页面。因此,我必须将JS放入一个公共JS文件中,该文件在初始页面加载。对吗?但是如果我这样做,那么在加载JS时,DOM中就没有#volume滑块。我该怎么处理呢?我的代码处理这个问题。看看slidestop是如何绑定的。它被称为委托绑定。基本上,当您绑定事件时,elemenet是否存在并不重要。因为您要将它绑定到document对象,当时间到来时,它将查找#homeContainer。
    $(document).on('pageinit', '#homeContainer', function(){ 
        $(document).on( "slidestop",  "#volume-slider" ,function( event, ui ) {
            alert('Slide Stop!');
        });       
    });