#jquery
#jquery
Вопрос:
В приведенном ниже коде при нажатии кнопки воспроизведения ее значение должно быть изменено на pause, а при нажатии кнопки pause должна вызываться другая функция.Как это сделать с помощью jquery toggle
<input type="button" onclick ="play" value="play"/>
<script>
function play()
{
play_int();
// Button value to be changed to pause
}
And when pause play_pause();
Комментарии:
1. что вы пробовали до сих пор???
2. Не используйте встроенные обработчики событий. С jQuery это также на самом деле не имеет смысла.
Ответ №1:
Присвоите вашей кнопке идентификатор:
<input type="button" id="play" value="play"/>
Затем вы можете сделать что-то вроде этого:
$('#play').click(function() {
if ($(this).val() == "play") {
$(this).val("pause");
play_int();
}
else {
$(this).val("play");
play_pause();
}
});
Или немного более аккуратная версия, подобная этой:
$(function(){
$('#play').click(function() {
// if the play button value is 'play', call the play function
// otherwise call the pause function
$(this).val() == "play" ? play_int() : play_pause();
});
});
function play_int() {
$('#play').val("pause");
// do play
}
function play_pause() {
$('#play').val("play");
// do pause
}
Ответ №2:
попробуйте ( в jQuery < 1.9)
$("input[type='button']").toggle(
function(){
$(this).val("Pause");
},
function(){
$(this).val("Play");
}
);
ДЕМОНСТРАЦИЯ
Примечание: toggle
Событие устарело в версии 1.8 и было удалено в версии 1.9
Комментарии:
1. Будет ли это работать с начальным значением? Я имею в виду, если кнопка уже настроена на паузу, будет ли она переключаться на воспроизведение? Я не уверен.
2. @diEcho это не работает в версиях jQuery 1.9 и выше. Есть ли какой-либо другой способ сделать подобное?
3. @LakshmanaKumar Событие переключения устарело в версии 1.8 и было удалено в версии 1.9 читать : forum.jquery.com/topic /…
Ответ №3:
$('#play_button_id').toggle(play,play_pause);
это приведет к запуску функции воспроизведения () при первом нажатии на кнопку
и функция play_pause() при повторном нажатии на кнопку
Комментарии:
1. Нет, этого не произойдет. Если только эти функции не возвращаются с другой функцией :). Вам следует использовать
toggle(play, play_pause)
.
Ответ №4:
Я бы сказал
statuses = ['Play', 'Pause'];
$('#btn_play').val(
$('#btn_play').val() == statuses[0]
? statuses[1] : statuses[0]
);
Ответ №5:
Самая простая идея может заключаться в следующем
function play(action) {
{
if(action=='play') {
play_int();
$("#btn_play").val('pause');
}
else {
pause_int();
$("#btn_play").val('play');
}
}
$("#btn_play").click(function() {
val = $(this).val();
play(val);
}