2012-12-21 4 views
5

Ich habe diesen Code hier die struts2-jQuery-PluginJQuery Ajax Hinzufügen Hash in der 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> 

verwendet Wenn ich seinen Inhalt klicken Sie auf die URL wird so zu etwas zu ändern, wird nichts in der URL zu verändern. es bleibt immer noch das gleiche, was ich will ist, dass, wenn ich auf den Link klicke, so etwas passieren würde www.myapp.com/#ajaxvalidation. Wenn ich den Code Anker-Tag laufen, um so etwas wie dieses

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

Damit gegeben, wie würde ich einen Hash in der URL hinzufügen?

+1

Wenn Sie AJAX verwenden, wird die URL nicht geändert werden soll, da Sie kein neues Dokument zu laden. AJAX ist eine transparente Kommunikation hinter den Kulissen. – Barmar

+0

@Barmar Wie würde ich dann einen Hash zur URL hinzufügen? Ich muss die URL neu schreiben (oder einen Hash hinzufügen), aber die ausgewählten Inhalte mit Ajax laden, da ich einen Musikplayer habe, der gerade geladen wird. – KyelJmD

+0

Ist 'document.location.hash = 'ajaxvalidation'' was du suchst? – Barmar

Antwort

23

Hier ist ein funktionierendes Beispiel (ohne Berücksichtigung 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

Kann ich trotzdem # id/somename/programmatisch hinzufügen? aber das funktioniert – KyelJmD

+5

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