2012-02-23 9 views
5

Tôi đang cố gắng thêm liên kết vào trang của mình tùy thuộc vào trang bạn đang truy cập. Tôi đang sử dụng Squarespace để xây dựng trang web này, vì vậy cách dễ nhất để tôi làm điều này là với Javascript hoặc Jquery.Thêm liên kết với Jquery

Tôi nghĩ có gì đó sai với cú pháp này mà tôi đang thiếu. Tôi đã cố gắng thoát ra khỏi các dấu ngoặc kép bằng \, nhưng điều đó không hiệu quả. Nếu tôi chỉ xuất văn bản, nó hoạt động tốt, nhưng nó dường như phá vỡ khi tôi cố gắng và làm cho nó hoạt động với một liên kết.

if(loc == pageOne) { 
$("#pages").append("<div> <a href=\"http://design.optimus.com/projects?currentPage=2\">Next Page</a> </div>") 
    }else{ 
    if(loc == pageOneB){ 
    $("#pages").append("<div> <a href=\"http://design.optimus.com/projects?currentPage=2\">Next Page</a> </div>") 
    }else{ 
    if(loc == pageTwo){ 
    $("#pages").append("<div> <a href=\"http://design.optimus.com/projects\">Previous Page</a></div> ") 
    } 
} 
} 

Chỉnh sửa: Tôi vừa kiểm tra và các liên kết dường như đang hoạt động trong Chrome chứ không phải Firefox.

Một chỉnh sửa khác: Vì vậy, liên kết cũng đang hoạt động trong Safari. Tôi đoán vấn đề bây giờ là tại sao không có trong Firefox? Có điều gì đó về phương pháp này mà Firefox không hỗ trợ không?

+1

Sử dụng dấu nháy đơn trong câu lệnh chắp thêm và giữ dấu ngoặc kép (không thoát) trong văn bản. Ví dụ: '$ ('# trang'). Chắp thêm ('

')' – j08691

Trả lời

6

Mã của bạn dường như làm việc tốt tuy nhiên bạn có thể sử dụng else if báo cáo thay vì lồng nhau if báo cáo:

if(loc == pageOne) { 
    $("#pages").append("<div> <a href=\"http://design.optimus.com/projects?currentPage=2\">Next Page</a> </div>") 
} else if (loc == pageOneB){ 
    $("#pages").append("<div> <a href=\"http://design.optimus.com/projects?currentPage=2\">Next Page</a> </div>") 
} else if (loc == pageTwo){ 
    $("#pages").append("<div> <a href=\"http://design.optimus.com/projects\">Previous Page</a></div> ") 
}​ 

Dưới đây là một bản demo: http://jsfiddle.net/Rba6w/

+0

Cảm ơn, tôi sẽ thay đổi điều đó. Mã của tôi hoạt động tốt với tôi trong mọi thứ trừ FIREFOX? Tôi không biết tại sao. Nó hiển thị văn bản nhưng nó không phải là một liên kết. Trong mọi trình duyệt khác, nó liên kết đến trang tiếp theo. – patricko

+0

@patricko Sau đó, vấn đề của bạn có thể là giá trị 'loc' của bạn khác với Firefox so với các trình duyệt khác. Ngay trước câu lệnh 'if' của bạn, hãy đặt' console.log (loc) '(hoặc' alert (loc) ') để xem giá trị là gì trong các trình duyệt khác nhau. Bạn có thể muốn làm điều đó với các biến 'pageOne' /' pageOneB'/'pageTwo' (tôi không chắc chắn cách chúng được thiết lập nhưng nó luôn luôn là một ý tưởng tốt để xem những gì bạn đang thực sự xử lý). – Jasper

+0

Giá trị loc ngay bây giờ là URL và tôi nhận được nó bằng cách gọi 'window.location' Có khác gì trong firefox không? – patricko

0

xem nếu công trình này

if(loc == pageOne) { 
$("#pages").append('<div> <a href="http://design.optimus.com/projects?currentPage=2">Next Page</a> </div>') 
    }else{ 
    if(loc == pageOneB){ 
    $("#pages").append('<div> <a href="http://design.optimus.com/projects?currentPage=2">Next Page</a> </div>') 
    }else{ 
    if(loc == pageTwo){ 
    $("#pages").append('<div> <a href="http://design.optimus.com/projects">Previous Page</a></div>') 
    } 
} 
} 
+0

Nó không hoạt động. Trước khi tôi nhận được văn bản ít nhất, điều này không hiển thị bất cứ điều gì. – patricko

+0

tôi đã chỉnh sửa nó. kiểm tra nó ngay bây giờ. –

+0

Man, liên kết vẫn không hoạt động trong firefox. – patricko

0

Hãy dùng thử:

switch(loc) 
{ 
case pageOne: 
    $("#pages").append('<div> <a href="http://design.optimus.com/projects?currentPage=2">Next Page</a> </div>'); 
    break; 
case pageOneB: 
    $("#pages").append('<div> <a href="http://design.optimus.com/projects?currentPage=2">Next Page</a> </div>'); 
    break; 
case pageTwo: 
    $("#pages").append('<div> <a href="http://design.optimus.com/projects">Previous Page</a></div>"'); 
    break; 
}