2009-02-26 8 views
0

Was ich will, ist ein Hyperlink Mehr, wenn angeklickt läuft einige Javascript-Funktion und ändert sich auch zu einem Hyperlink Weniger. Heres, was ich habe, was nicht funktioniert. Es läuft die Ajaxpage-Funktion gut, aber nicht moreToLess es ist meine Verwendung von "und" im Javascript.AJAX innerHTML. Ändern Sie die Links. Möglicherweise ein "oder" Problem

<script type="text/javascript"> 
function moreToLess(){ 
document.getElementById('tagLinks').innerHTML = '<a href=# OnClick="ajaxpage('/TagCloud?id=EDI_0009&count=20', 'tagcloud');lessToMore()" >Less</a>'; 
} 
function lessToMore(){ 
document.getElementById('tagLinks').innerHTML = '<a href=# OnClick="ajaxpage('/TagCloud?id=EDI_0009&count=50', 'tagcloud');moreToLess()" >More</a>'; 
} 
</script> 
<span id=tagLinks ><a href=# OnClick="ajaxpage('/TagCloud?id=EDI_0009&count=50', 'tagcloud');moreToLess()" >More</a></span> 

Antwort

3

Ja, es ist, zu entkommen nur Ihre Apostrophe innerhalb der doppelten Anführungszeichen, die Sie in Ihrem haben Javascript .. ala \‘

<script type="text/javascript"> 
    function moreToLess(){ 
     document.getElementById('tagLinks').innerHTML = '<a href=# OnClick="ajaxpage(\'/TagCloud?id=EDI_0009&count=20\', \'tagcloud\');lessToMore()" >Less</a>'; 
    } 
    function lessToMore(){ 
     document.getElementById('tagLinks').innerHTML = '<a href=# OnClick="ajaxpage(\'/TagCloud?id=EDI_0009&count=50\', \'tagcloud\');moreToLess()" >More</a>'; 
    } 
</script> 
<span id=tagLinks ><a href=# OnClick="ajaxpage('/TagCloud?id=EDI_0009&count=50', 'tagcloud');moreToLess()" >More</a></span> 
+0

Denken Sie alle für die schnelle Antwort. Erfolg! – Duncan

+0

Kein Problem, froh, dass es funktioniert hat! –

3

Sie haben die ' Zeichen in dem Zitat zu entkommen:

'<a href=# OnClick="ajaxpage(\'/TagCloud?id=EDI_0009&count=20\', \'tagcloud\');lessToMore()" >Less</a>' 
3

bin ich nicht sicher, ob irgendetwas anderes falsch gibt es, aber ich glaube, Sie brauchen Ihre Apostrophe zu entkommen, die in anderen Apostrophe sind:

document.getElementById('tagLinks').innerHTML = '<a href=# OnClick="ajaxpage(\'/TagCloud?id=EDI_0009&count=20\', \'tagcloud\');lessToMore()" >Less</a>\'; 
3

Es ist in der Tat ein Zitat Ausgabe, können Sie das "Zeichen mit einem Zeichen \ entkommen

<script type="text/javascript"> 
function moreToLess(){ 
document.getElementById('tagLinks').innerHTML = '<a href=# OnClick="ajaxpage(\'/TagCloud?id=EDI_0009&count=20\', \'tagcloud\');lessToMore()" >Less</a>'; 
} 
function lessToMore(){ 
document.getElementById('tagLinks').innerHTML = '<a href=# OnClick="ajaxpage(\'/TagCloud?id=EDI_0009&count=50\', \'tagcloud\');moreToLess()" >More</a>'; 
} 
</script> 
<span id=tagLinks ><a href=# OnClick="ajaxpage('/TagCloud?id=EDI_0009&count=50', 'tagcloud');moreToLess() 
0

Diese Art von Verwirrung ist, warum innerHTML- nicht immer ein Gewinn ist. Sie haben JavaScript in HTML eingebettet in ein JavaScript-String-Literal eingebettet in mehr HTML eingebettet, es ist kein Wunder, dass Sie verwirrt sind.

Hier ist eine einfachere Version basierend auf dem Umschalten der Verbindung durch DOM-Methoden.

<a id="tagLinks" href="/TagCloud?id=EDI_0009&amp;count=50">more...</a> 

<script type="text/javascript"> 
    var ismore= false; 
    document.getElementById('tagLinks').onclick= function() { 
     ajaxpage(this.href); 
     ismore= !ismore; 
     this.href= '/TagCloud?id=EDI_0009&count='+(ismore? 20 : 50); 
     this.firstChild.data= ismore? 'less...' : 'more...'; 
     return false; 
    }; 
</script> 
Verwandte Themen