значение кнопки переключения jquery

#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);
}