Получение событий от события ползунка после изменения страницы в jQuery Mobile
В приложении PhoneGap я перехожу на HTML-страницу через $.mobile.changePage()
функция.
Целевая страница содержит элемент ввода ползунка.
Я хочу вычислить выбранное значение после смены ползунка, но не могу понять, как получать события.
Я посмотрел образцы демонстрационной страницы jQM, но она не работает.
Вот код целевой страницы, содержащей элемент слайдера:
<!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>
Может ли быть так, что я должен разместить принимающий скрипт где-нибудь еще? Потому что, кажется, не выполняется.
Спасибо Макс
1 ответ
Решение
У вас есть несколько ошибок в вашем коде:
Рабочий пример: http://jsfiddle.net/Gajotres/JCdGA/
$(document).on('pageinit', '#homeContainer', function(){
$(document).on( "slidestop", "#volume-slider" ,function( event, ui ) {
alert('Slide Stop!');
});
});
- Если вы хотите связать событие, вы должны сделать это во время правильного события страницы, в этом случае используется pageinit.
slidestop
является правильным событием для определения конца движения ползунка.- Если вы используете несколько
HTML
формат страницы и если эта страница не является начальнойHTML
этот javascript будет удален. когдаjQuery Mobile
загружает новыйHTML
страницы загружаются толькоBODY
содержание и отказывается от всего остального. Узнайте больше здесь.