2013-05-15 22 views
5

tôi có một liên kết "bình thường" trong trang jqm của tôi như thế này:jQuery lực di động full reload khi liên kết nhấp

<a href="http://www.mysite.com/mobile/page.php?attribute=value"> 

Và nếu tôi nhấp vào nó nó sẽ không đúng cách làm mới có tính đến giá trị thuộc tính và tải mọi thứ cần thiết cho nó dựa trên giá trị thuộc tính. Tôi hiểu rằng điều này là do thực tế là jqm cố gắng để làm một cuộc gọi ajax như nêu here:

When you use pageChange an Ajax request will be made to that url and it will be 
loaded only the content inside the div with data-role="page". So everything you 
have out of this element will be ignored (JS and CSS). 

Vì vậy, tôi phát hiện ra trong docs rằng tôi nên sử dụng $.mobile.ajaxEnabled=false; hoặc rel=external vào liên kết hoặc target=_blank vào liên kết .

Điều kỳ lạ mặc dù đối với tôi là chỉ khi tôi đặt thuộc tính target=_blank cho các liên kết của tôi thì điều này thực sự xảy ra. Vì vậy, tôi tự hỏi nếu ai đó có loại vấn đề này và làm thế nào bạn giải quyết nó? Vấn đề là, tôi muốn kiềm chế bản thân bằng cách sử dụng target=_blank vì nó sẽ mở một tab mới trong trình duyệt của tôi (như mong đợi, nhưng điều này không tốt đẹp từ POV của người dùng).

phiên bản jqm tôi sử dụng là 1,2

+0

sử dụng '$ .mobile.changePage ('url', {reloadPage: true});'. ** reloadPage ** Buộc tải lại trang, ngay cả khi trang đã nằm trong DOM của vùng chứa trang. Chỉ được sử dụng khi đối số 'to' của changePage() là một URL. – Omar

+0

Xin chào Omar, cảm ơn câu trả lời của bạn mặc dù nó thực sự không hiệu quả với tôi và cũng không phải câu trả lời của Vinay bên dưới. – Nikola

Trả lời

10

này câu hỏi bây giờ ở phía trên cùng của kết quả tìm kiếm google, vì vậy figured tôi muốn trả lời:

Sử dụng các thuộc tính dữ liệu ajax và đặt nó là giả để buộc tải lại khi nhấp chuột vào một liên kết:

data-ajax="false" 

sử dụng nó như:

<a href="/" data-ajax="false"> 
    <img id="mainLogo" src="logo.svg" width="215" /> 
</a> 

Và sau đó liên kết của bạn sẽ buộc tải lại trang web!

Linking without Ajax

Liên kết trỏ đến các lĩnh vực khác hoặc có rel =, mục tiêu "bên ngoài" dữ liệu ajax = "false" hoặc thuộc tính sẽ không được nạp với Ajax. Thay vào đó, các liên kết này sẽ làm mới toàn bộ trang mà không cần chuyển đổi hoạt ảnh . Cả hai thuộc tính (rel = "external" và data-ajax = "false") đều có cùng tác dụng nhưng ý nghĩa ngữ nghĩa khác: rel = "external" nên được sử dụng khi liên kết đến một trang web hoặc miền khác, trong khi data- ajax = "false" rất hữu ích khi chỉ cần chọn một trang trong miền của bạn để được tải qua Ajax. Do các hạn chế về bảo mật, khung làm việc luôn chọn các liên kết tới các miền bên ngoài ra khỏi hành vi Ajax .

Phụ lấy từ https://stackoverflow.com/a/22951472

+0

Có cách nào dễ dàng để nói với JQM rằng bạn muốn tất cả các liên kết của bạn theo cách này? – SpyderScript

-1

Make chức năng cho sự kiện onclick của link.See mã example.Hope dưới đây sẽ giúp!

<script type="text/javascript"> 
function loadPage(url){ 
document.location.href = url; 
} 
<script/> 
<a href="#" onClick="loadPage('http://www.mysite.com/mobile/page.php?attribute=value');"> 
Các vấn đề liên quan