2012-12-21 28 views
5

tôi có mã này ở đây có sử dụng struts2-plugin jqueryJQuery Ajax thêm băm trong url

<h4>Choose A task</h4> 
    <ul> 
     <s:url value="views/ajaxvalidation.jsp" var="ajaxvalidation" > 
      <s:param name="menuId" value="1"/> 
     </s:url> 
     <li><sj:a targets="resultContent" href="%{ajaxvalidation}">Ajax Validation</sj:a></li> 
    </ul> 

Khi tôi nhấp vào nội dung của nó url đang thay đổi một cái gì đó như thế này, không có gì thay đổi trong url. nó vẫn giữ nguyên, điều tôi muốn là khi tôi nhấp vào liên kết như thế này sẽ xảy ra www.myapp.com/#ajaxvalidation. Khi tôi chạy thẻ mã neo được dịch sang một cái gì đó như thế này

<a id="anchor_1365013162" href="javascript:void(0)">Ajax Validation</a> 

Với điều đó được cho, làm cách nào để thêm một băm vào url?

+1

Khi bạn sử dụng AJAX, URL được không được phép thay đổi, vì bạn đang không tải một tài liệu mới. AJAX là một giao tiếp minh bạch đằng sau hậu trường. – Barmar

+0

@Barmar Tôi làm cách nào để thêm băm vào url? Tôi cần phải viết lại url (hoặc thêm một băm vào nó) nhưng tải nội dung đã chọn với ajax vì tôi có một trình phát nhạc đang được tải – KyelJmD

+0

Có phải 'document.location.hash = 'ajaxvalidation'' bạn đang tìm kiếm gì không? – Barmar

Trả lời

23

Dưới đây là một ví dụ làm việc (không xem xét struts2):

<html> 
<body> 
<a id="123" href="">Add Hash</a> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
<script> 
$(document).ready(function() { 
    $("a").click(function(e) { 
     window.location.hash = $(this).attr("id"); 
     e.preventDefault(); 
    }); 
}); 
</script> 
</body> 
</html> 
+0

Có anyway tôi có thể thêm # id/somename/programmatically? nhưng điều này làm việc – KyelJmD

+5

'window.location.hash = 'id/somename /'' – adeneo