我想要做的就像代码一样:当值大于10时,显示> 10,或显示1 - 10.它工作正常。但是,如果我取消注释jquery mobile,它就不再起作用了。
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css">
<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
<!--<script src="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>-->
</head>
<body>
<form>
<label for='range'>as</label>
<input id='range' type='range' onmousemove='test()'>
<p id='display'>display</p>
</form>
<script>
function test(){
var v = $('#range').val();
if(v <= 10)$("#display").text('1-10');
else $("#display").text('>10');
}
</script>
</body>
</html>
答案 0 :(得分:2)
小部件初始化后有三个JQM滑块事件可用:
要获得正确的行为,您应该提供正确的JQM页面结构并在pagecreate
事件中注册事件处理程序。下面是一个简单的存根,您可以在其中测试JQM滑块:
$(document).on("pagecreate", "#page-one", function() {
$("#slider").on("slidestart", function() {
var val = $(this).val();
$("#txt1").val(val);
});
$("#slider").on("change", function() {
var val = $(this).val();
$("#txt2").val(val);
});
$("#slider").on("slidestop", function() {
var val = $(this).val();
$("#txt3").val(val);
});
});
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<link rel="stylesheet" href="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.css">
<script src="https://code.jquery.com/jquery-1.11.2.min.js"></script>
<script src="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.js"></script>
</head>
<body>
<div id="page-one" data-role="page">
<div role="main" class="ui-content">
<label for="slider">Slider</label>
<input type="range" name="slider" id="slider" min="1" max="100" value="1" step="1" autocomplete="off" />
<fieldset class="ui-grid-b">
<div class="ui-block-a">
<label for="txt1">slidestart:</label>
<input data-mini="true" name="txt1" id="txt1" value="" type="text">
</div>
<div class="ui-block-b">
<label for="txt2">slidechange:</label>
<input data-mini="true" name="txt2" id="txt2" value="" type="text">
</div>
<div class="ui-block-c">
<label for="txt3">slidestop:</label>
<input data-mini="true" name="txt3" id="txt3" value="" type="text">
</div>
</fieldset>
</div>
</div>
</body>
</html>
答案 1 :(得分:1)
我建议你将input
包裹在div
中,并将change
个事件附加到该div
,通过该事件,您可以获得slider
的值}。下面的工作片段。
$("#slider").change(function() {
$("#display").text($('#range').val()<=10?'1-10':'>10');
});
<link rel="stylesheet" href="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css">
<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
<form>
<div id="slider">
<label for='range'>as</label>
<input id='range' type='range' min="0" max="100" value="0">
</div>
<p id='display'>display</p>
</form>