【问题标题】:jquery button name change not workingjquery按钮名称更改不起作用
【发布时间】:2014-01-31 06:01:23
【问题描述】:

我查看了其他答案并尝试了一些方法,但我似乎无法更改按钮的名称。我知道 jquery 加载得很好,我可以通过单击按钮来执行简单的警报脚本。但是名称更改似乎不起作用。 我试过: attr 和 text 函数。我也试过“这个”而不是“#toggleAutoPlayBtn” 还有其他建议吗?

<input type ="button" id="toggleAutoPlayBtn" value="PAUSE"/>    



var autoStart = true;
    $(document).on('click', '#toggleAutoPlayBtn', function(){
                if(autoStart) {
                    $('#toggleAutoPlayBtn').text('play');
                    autoStart = false;
               alert("play");
                } else {
                    $('#toggleAutoPlayBtn').text('pause');
                    autoStart = true;
               alert("pause");
                }
    });

我正在使用:

【问题讨论】:

  • 你是否关闭了&lt;script&gt;标签中的脚本
  • 是的,我有

标签: javascript jquery button click


【解决方案1】:

您正在使用input type = button,因此您不能使用.text() 方法,因为它在value 属性中给出。所以使用

检索它
 $('#toggleAutoPlayBtn').val('play');

否则使用button标签。

<button id="toggleAutoPlayBtn">PAUSE</button>

现在可以使用了

 $('#toggleAutoPlayBtn').text('play');

【讨论】:

  • 谢谢。我改为val。并尝试了第二个选项,它仍然不起作用。控制台中也没有错误。有点不知所措。
  • @user2502562 不,它会起作用,检查这个小提琴jsfiddle.net/praveen_jegan/4MD52
  • 是的,我知道,我也看到了 val 选项的小提琴,但它似乎不起作用。它也不会在控制台中给出任何错误。看起来错误是由于另一个问题。这是我在下面的网站上尝试的网站。我现在将按钮放在页脚中(我仍然需要弄清楚如何将按钮插入画廊区域)。而且我还需要弄清楚如何让画廊真正停止(那里的royalSlider会有一个错误,如果我拿那一行代码就不存在了)grantarchitecturestudio.com/projects/residence-3/…
【解决方案2】:

按钮不接受.text()

试试这个:

$('#toggleAutoPlayBtn').attr('value','pause');

【讨论】:

    【解决方案3】:

    你必须使用 value 属性。根据您的使用情况尝试以下方法。

    对于早于 1.6 的版本,

    $("#toggleAutoPlayBtn").attr('value', 'play');
    

    对于高于 1.6 的版本,

    $("#toggleAutoPlayBtn").prop('value', 'play');
    

    【讨论】:

      【解决方案4】:

      试试这个

      $('#toggleAutoPlayBtn').val('play');
      

      【讨论】:

        【解决方案5】:

        这里你需要使用val()

        var autoStart = true
        $(document).on('click', '#toggleAutoPlayBtn', function(){
            if(autoStart) {
                autoStart = false;
                $('#toggleAutoPlayBtn').val('play');
                alert("play");
            } else {
               autoStart = true;
               $('#toggleAutoPlayBtn').val('pause');
               alert("pause");
            }
        });
        

        Try in fiddle

        【讨论】:

          【解决方案6】:

          您应该使用$('#toggleAutoPlayBtn').val('play');$("#toggleAutoPlayBtn").prop('value', 'play');

          除非您更改 autoStart 的值,否则此代码只会更改一次值,并且不会在您每次单击按钮时切换。

           $(document).on('click', '#toggleAutoPlayBtn', function(){
                  if(autoStart) {
                      $('#toggleAutoPlayBtn').text('play');
                 alert("play");
                  } else {
                      $('#toggleAutoPlayBtn').text('pause');
                 alert("pause");
                  }
           });
          

          切换:

              var started = true;
              $(document).on('click', '#toggleAutoPlayBtn', function(){
                          if(started) {
                              $('#toggleAutoPlayBtn').val('play');
                              started = false;
                              alert("play");
                          } else {
                              $('#toggleAutoPlayBtn').val('pause');
                              started = true;
                              alert("pause");
                          }
              });
          

          Fiddle

          【讨论】:

          • 谢谢。我改为val。我确实有 autoStart = !auto​​Start;我尝试了你使用的确切代码,我看到它在小提琴中有效,但它仍然不起作用。控制台中也没有错误。有点不知所措。
          • @user2502562 你检查控制台检查错误了吗?
          • 我做到了,它报告的唯一错误(在我按下按钮之前)是:不推荐使用 event.returnValue。请改用标准 event.preventDefault()。不确定是否与此有关。
          • 您确定该函数是通过点击事件调用的吗?
          • 我认为不是,这是我认为网站上其他地方的唯一错误。所以我没有收到与此按钮相关的任何错误消息。如果有帮助,我可以向您发送指向我有此按钮的网站的链接。
          猜你喜欢
          • 2013-05-17
          • 2013-07-17
          • 2023-03-20
          • 2014-04-12
          • 2014-07-18
          • 1970-01-01
          • 2010-11-10
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多