代码之家  ›  专栏  ›  技术社区  ›  Udders

jquery切换帮助

  •  1
  • Udders  · 技术社区  · 14 年前

    我尝试使用切换函数来更改链接的背景和Href,到目前为止我已经有了这个代码,

    $('a.loveIt').toggle(
            function() {
             var url = $(this).attr('href');
             $.ajax({
                url:url,
                type:"POST",
                success:function(){
                    //alert("hello");
                    $('p#loveIt').append(
                        "<a class='lovedIt' href='<?php base_url()."welcome/noMore/".$row['contentId'];?>'>Change It</a>"
                    )
                    $('div#wrapper').append(
                        "<div id='flashAdded'><p>The content has been added to your content</p></div>"
                    )
                    $("#flashAdded").animate({marginTop:"0px"}, 1500);
                    setTimeout(function () {$("#flashAdded").animate({marginTop:"-46px"}, 1500);}, 2000);
                    $('.loveIt').removeClass('loveIt').addClass('lovedIt');
                }
             });
             return false
            },
            function() {
            alert(id);
                $(this).removeClass('lovedIt').addClass('loveIt')
            });
    

    在第一个函数中设置的url变量是“welcome/lovethis/5”5,因为它是文章ID,所以每个文章的url变量是不同的,在单击链接时,我会删除一个类并添加一个类,但我还需要将link href更改为“welcome/nomore/5”(或任何ID)。

    这有可能吗?

    4 回复  |  直到 14 年前
        1
  •  2
  •   Rune    14 年前

    我想你可以试试

    var link = $('.loveIt');
    link.removeClass('loveIt').addClass('lovedIt').attr('href', link.attr('href').replace('loveThis', 'noMore'));
    
        2
  •  0
  •   Sarfraz    14 年前

    但我也需要改变链接 “欢迎/nomore/5”(或 不管身份证是什么)。

    $('.loveIt').removeClass('loveIt').addClass('lovedIt').attr('href', 'welcome/noMore/5');
    

    要添加链接,只需添加 .attr('href', 'welcome/noMore/5'); 为了它。

        3
  •  0
  •   tvanfosson    14 年前

    只有在第一次将页面发送到浏览器时,才会对每个Ajax请求执行PHP代码。既然您真正要做的就是更改“操作”文本,为什么不使用javascript字符串替换呢?

    $('p#loveIt').append( 
        "<a class='lovedIt' href='" + href.replace(/lovedIt/,'noMore') + "'>Change It</a>" 
    );
    
        4
  •  0
  •   watermanio    14 年前

    $(this).find('a').attr('href'$(this).find('a').attr('href').replace('lovethis','nomore'));

    在匹配的元素上用“nomore”替换“lovethis”…