2010-11-12 52 views
21

Tôi không hiểu tại sao tôi nhận được thông báo lỗi bằng cách sử dụng phương thức chuỗi con để khai báo biến.. Lỗi chuỗi: "không phải là chức năng"

Tôi muốn sử dụng phần đầu tiên của URL trong so sánh.

Site: http://www.elizabet.nl/wordpress

Đây là phần mà đang xảy ra sai:

var currentLocation = document.location, 
muzLoc = currentLocation.substring(0,45), 
prodLoc = currentLocation.substring(0,48), 
techLoc = currentLocation.substring(0,47); 

Lỗi: "currentLocation.substring không phải là một chức năng"

Nhưng phần này của mã là fine:

var URL = $(this).attr("href").substring(2) + ' #main'; 

Tất cả mã:

jQuery(function($){ 

    var siteURL = "http://" + top.location.host.toString() + "/wordpress", // Declareren van URL van de website. 
     URL = '', // Declareren van een URL, welke dan ook. 
     currentLocation = '', 
     muzLoc = '', 
     prodLoc = '', 
     techLoc = '',    
     allLinks = $('a[href^=' + siteURL + ']'), // Declareren van alle menu-links. Het teken^betekent 'begint met'. 
     otherLinks = $('a[href^=' + siteURL + "/wp-content" + ']'), 
     siteLinks = $(allLinks).not(otherLinks),  
     mainDiv = $("#content"), 
     hash = window.location.hash, 
     muziekURL = "http://www.elizabet.nl/wordpress/#/muziek_pf/", 
     productieURL = "http://www.elizabet.nl/wordpress/#/productie_pf/", 
     techniekURL = "http://www.elizabet.nl/wordpress/#/techniek_pf/";  

    if (hash) { 
     hash = "/wordpress" + hash.substring(1); // substring methode haalt karakters van je string af. In dit geval de #, vanwege de offset=1. 
     URL = hash; 
     $(mainDiv).load(URL);   
    } 

function pageLoad() { 

       var allLinks = $('a[href^=' + siteURL + ']'), 
       otherLinks = $('a[href^=' + siteURL + "/wp-content" + ']'), 
       siteLinks = $(allLinks).not(otherLinks); 

       siteLinks.each(function() {    

        $(this).attr("href", "#" + this.pathname.substring(10)); 
        }) 

        .click(function() { 
        var URL = $(this).attr("href").substring(2) + ' #main'; 
        $(mainDiv).load(URL, function(){ 

        var currentLocation = document.location, 
         muzLoc = currentLocation.substring(0,45), 
         prodLoc = currentLocation.substring(0,48), 
         techLoc = currentLocation.substring(0,47);     

       if (muzLoc == muziekURL) {    
       $("body").animate({ backgroundColor: "#151C07"}, 500); 
       $(".nieuws").animate({ borderBottomColor: "#99CC33"}, 500); 
       $("#stripe_trans").add("#header").animate({ backgroundColor: "#99CC33"}, 500); 
       $("#tabtekst_3").stop().animate({ backgroundColor: "#B8860B" }, 500); 
       $("#tab_3").add("a.gold").stop().animate({ color: "#B8860B" }, 500); 
       $("#tabtekst_4").stop().animate({ backgroundColor: "#765AAD" }, 500); 
       $("#tab_4").add("a.purple").stop().animate({ color: "#765AAD" }, 500);          
       } 

       else if (prodLoc == productieURL) {  
       $("body").animate({ backgroundColor: "#251B02"}, 500); 
       $(".nieuws").animate({ borderBottomColor: "#FFCC33"}, 500); 
       $("#stripe_trans").add("#header").animate({ backgroundColor: "#FFCC33"}, 500);     
       $("#tabtekst_2").stop().animate({ backgroundColor: "#6B8E23" }, 500); 
       $("#tab_2").add("a.green").stop().animate({ color: "#6B8E23" }, 500); 
       $("#tabtekst_4").stop().animate({ backgroundColor: "#765AAD" }, 500); 
       $("#tab_4").add("a.purple").stop().animate({ color: "#765AAD" }, 500); 
       } 

       else if (techLoc == techniekURL) {  
       $("body").animate({ backgroundColor: "#181223"}, 500); 
       $(".nieuws").animate({ borderBottomColor: "#B39BE4"}, 500); 
       $("#stripe_trans").add("#header").animate({ backgroundColor: "#B39BE4"}, 500);   
       $("#tabtekst_2").stop().animate({ backgroundColor: "#6B8E23" }, 500); 
       $("#tab_2").add("a.green").stop().animate({ color: "#6B8E23" }, 500);      
       $("#tabtekst_3").stop().animate({ backgroundColor: "#B8860B" }, 500); 
       $("#tab_3").add("a.gold").stop().animate({ color: "#B8860B" }, 500); 
       } 

       else { 
       $("body").animate({ backgroundColor: "#202020"}, 500); 
       $(".nieuws").animate({ borderBottomColor: "#FFF"}, 500); 
       $("#stripe_trans").add("#header").animate({ backgroundColor: "#FFF"}, 500);    
       $("#tabtekst_2").stop().animate({ backgroundColor: "#6B8E23" }, 500); 
       $("#tab_2").add("a.green").stop().animate({ color: "#6B8E23" }, 500);    
       $("#tabtekst_3").stop().animate({ backgroundColor: "#B8860B" }, 500); 
       $("#tab_3").add("a.gold").stop().animate({ color: "#B8860B" }, 500); 
       $("#tabtekst_4").stop().animate({ backgroundColor: "#765AAD" }, 500); 
       $("#tab_4").add("a.purple").stop().animate({ color: "#765AAD" }, 500);           
       } 

       pageLoad(); 
      });    
     }); 
} 

pageLoad(); 


}); // End document ready function. 

Trả lời

30

document.location là một đối tượng chứ không phải chuỗi. Nó trả về (theo mặc định) đường dẫn đầy đủ, nhưng nó thực sự chứa nhiều thông tin hơn thế.

Shortcut cho giải pháp: document.location.toString().substring(2,3);

Hoặc sử dụng document.location.href hoặc window.location.href

1

bạn cũng có thể trích dẫn chuỗi

''+document.location+''.substring(2,3); 
1

Lỗi Loại: hex.substring không phải là một chức năng

quyết:

bạn cần phải làm

hex = '0x4a6f7264616e0000000000000000000000000000000000000000000000000000' 
//because you probably only coppied the hexcode, you need to copy the quotes too 
Các vấn đề liên quan