Jquery更改按钮值不起作用

Jquery更改按钮值不起作用,jquery,html,dom,jquery-mobile,Jquery,Html,Dom,Jquery Mobile,我已经挣扎了几个小时,我无法让下面的代码工作 <li> <img width="100px" height="100px" src="$profile_picture"> <p>Username: $username</p> <p>UserID: $userid</p> <p>Bio: $bio</p> <p>Website: $website</p> <input ty

我已经挣扎了几个小时,我无法让下面的代码工作

<li>
<img width="100px" height="100px" src="$profile_picture">
<p>Username: $username</p>
<p>UserID: $userid</p>
<p>Bio: $bio</p>
<p>Website: $website</p>
<input type="button" value="Block" data-role="button" id="myButton"/>
</li>
<li data-role="list-divider"></li>
  • 用户名:$Username

    UserID:$UserID

    个人简历:$Bio

    网站:$Website

  • 我想将button的值更改为“blocked”,这是我的javascript:

    <script type="text/javascript">
    $("input[type='button']").toggle(function () {
        $(this).val("Block");
    }, function () {
        $(this).val("Blocked");
    });
    </script>
    
    
    $(“输入[type='button'])。切换(函数(){
    $(此).val(“块”);
    },函数(){
    $(此).val(“已阻止”);
    });
    
    我正在使用以下版本的jquery和jqm:

    <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    <script src="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.js"></script>
    
    
    

    你知道这为什么不能正常工作吗?非常感谢您的帮助…谢谢

    您正在使用的
    切换
    功能在jQuery 1.9版中被删除(不推荐的版本:1.8,删除的版本:1.9)

    您可以通过在
    上单击
    处理程序并切换值来实现相同的功能

    为什么要删除它?[版本1.9]

    这是
    .toggle()
    的“单击元素以运行指定函数”签名。它不应与
    .toggle()
    的“更改元素的可见性”混淆,后者未被弃用。前者正在被删除,以减少混淆并提高库中模块化的潜力。jQuery迁移插件可用于恢复功能

    为什么不推荐使用它?[版本1.8]

    你知道我们有两个开关吗?我们喜欢的一个会根据需要执行.show或.hide,并记录在。另一个设置循环。单击处理程序,并记录在:

    提供.toggle()方法是为了方便。手工实现相同的行为相对简单,如果.toggle()中的假设被证明是有限的,那么这是必要的。例如,如果对同一元素应用两次,.toggle()就不能保证正常工作。由于.toggle()在内部使用单击处理程序来执行其工作,因此我们必须取消绑定单击以删除附加了.toggle()的行为,以便其他单击处理程序可以在crossfire中被捕获。该实现还对事件调用.preventDefault(),因此如果对元素调用了.toggle(),则不会跟随链接,也不会单击按钮

    让我们摆脱痛苦吧

    这种方式使用的
    toggle()
    函数在jQuery 1.8中被弃用,在1.9中被删除

    $("#myButton").on('click', function(){
        $(this).val(function(i,val) {
            return val=='Block' ? 'Blocked' : 'Block';
        });
    });
    
    您应该在移动之前加载jQuery:

    <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    <script src="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.js"></script>
    
    
    

    记住document ready函数,或者在底部添加代码。

    除了大家所说的之外,您还可以使用另一种稍微不同的切换方式

     <input type="button" value="Block" data-role="button" class="myButton"/>
     <input type="button" value="Blocked" data-role="button" class="myButton" style="display:none;"/>
    

    您正在使用一个从1.9(1.8中已弃用)起从jQuery中删除的函数:@MarkSchultheiss-我不知道您在说什么,但是是的,切换事件已删除。但是,切换动画方法仍然存在。阅读我评论中的链接。我想我的眼睛是错的。没关系。总是打字更快+1我在mobile之前加载了jQuery,只是粘贴错了,tks!请注意,在使用
    文档时要小心。准备好运行您的代码,因为jQuery Mobile默认使用更依赖于
    pageinit
    (等等)的AJAX导航模型:@Jasper-这是一个有效点,jQ Mobile使用pageinit事件。@Tuga-不确定为什么它对您不起作用,它对我来说似乎很好,这里有一个??是什么问题导致它被删除了?它太类似于切换可见性的toggle()函数了。@Tuga如果有帮助的话,我制作了一个jQ插件来替换这个功能。当然,它是被调用的,并且可以很容易地从小提琴复制到js文件中。将链接放在jQuery链接之后的头部,就可以开始了。尽可能简单地使用
    $(“元素”).toggleMethod(函数(e){/*dowork*/},函数(e){/*dowork*/})
    
    $(".myButton").on('click', function (){
        $('.myButton').toggle()
    });