簡體   English   中英

jQuery attr href,為什么不工作?

[英]jQuery attr href, why isn't it working?

我認為下面的代碼行應該可以正常工作: $(".1").attr('href', '#Home'); 對?

但是當我將它與另一個jQuery腳本集成時,為什么它不起作用?

$(window).bind("load", function() {
    $('.1').click(function() {
        $('.1').removeClass('tab1');
        $('.2').removeClass('active2');
        $('.3').removeClass('active3');
        $('.4').removeClass('active4');

        $('.1').addClass('active1');

        $('.2').addClass('tab2');
        $('.3').addClass('tab3');
        $('.4').addClass('tab4');

        $('#PortfolioMainContainer:visible').fadeOut("slow",function(){
            $('#TextContent').load('Home.html', function() {
                $(this).fadeIn("slow")
            });
            return false;
        }); 

        if(!$(".1").hasClass("ActiveTab1")) {
            $(".1").attr('href', '#Home');
            $('#TextContent:visible').fadeOut("slow",function(){
                $('#TextContent').load('Home.html', function() {
                    $(this).fadeIn("slow")
                });
                return false;
            });
        }
        $(".1").addClass("ActiveTab1");

        $(".2").removeClass("ActiveTab2");
        $(".3").removeClass("ActiveTab3");
        $(".4").removeClass("ActiveTab4");
    });
});

我想要清楚的是當你點擊帶有類.1的div時,URL必須改為http://www.websiteurl.com/#Home

有沒有人知道如何讓它工作?

我測試了以下語句,它確實有效。

        $(function() {
            $("a").attr("href", "#123");
        });

如果我點擊任何鏈接,毫無疑問,該位置實際附加了#123。

我認為你的問題可能是,你的“.1”沒有附加到一個錨對象。 在HTML規范中,只有超鏈接(和一些不相關的html標簽)具有“href”屬性。 這意味着,例如,你的.1實際上是一個<div class='.1'> ,那么,即使你把href屬性賦予它,它也沒有任何默認行為充當“超鏈接”。 在這種情況下,您應該以編程方式導航到指定的URL,如:

$(".1").click(function(){
    window.location = "current/url" + "#home";
});

您可以使用document.URL獲取當前位置,因此

$(".1").attr('href', document.URL + '#Home');

問題是document.URL將獲得帶有磅和所有內容的URL,因此如果您使用example.com/#work,docuement.URL將返回'example.com/#work'。 因此,您可能需要進行一些檢查,或者如果您知道自己在此腳本的靜態URL上,則可以對該網址進行硬編碼。

另外一件事,我可以看到你在檢查它之后添加了ActiveTab1類,所以它不應該進入代碼的那一部分,除非它已經有了那個類。

您必須將當前位置附加到href屬性。

您需要添加名稱空間$(“a”)。attr(“xlink:href”,“#123”);

如果你在iframe中的teg,你不能通過jquery做任何事情嘗試做這樣的console.log($(“。1”)。html()); 你會看到null

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM