Permalänk
Medlem

JQuery Problem

Har ett litet problem, är ny i JQuery världen så min kunskap är inget att hurra för.

Håller på att experimentera lite med att ladda extern text och dyligt.
Just nu så har jag en extern .html med innehåll och text.

Koden ser ungefär ut så här.

var test = $("#content");
var links = $("#nav li");

links.click(function(){
switch(this.id){
case: "start":
test.load("../text.html #test1");
break;
case: "sida2":
test.load("../text.html #test2");
break;
}

Problemet är att jag har ett javascript i #test2 som laddar lite XML data, och ja vägrar fungera helt enkelt. (javascript koden är fungerande... men funkar inte när jag har den i den externa html filen. (filerna ligger i samma mapp)

Några tips ?

Permalänk
Medlem

Har du missat sista raden eller saknas den? Annars ska det vara "});" på slutet för göra .click()-anropet komplett.

Kan det vara att du har specat att sökvägen till text.html ligger i mappen ovanför (i mappstrukturen)?

Permalänk
Medlem

Vad inehåller text.html?

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Wishie
Har du missat sista raden eller saknas den? Annars ska det vara "});" på slutet för göra .click()-anropet komplett.

Kan det vara att du har specat att sökvägen till text.html ligger i mappen ovanför (i mappstrukturen)?

Hehe nej har inte glömt det i dokumentet men glömde att skriva det här
Sökvägen har jag provat en mängd olika och det verkar inte vara problemet.

Tjofras, text.html är bara några <div> element med vars ett unikt ID.

<div id="test2">

<- Här är egentligen en massa text ->

<div id="xmltest">
<script src="laddaXML.js" type="text/javascript">LoadXML();</script>
</div>
</div>

När den laddar in test2 så borde den ju ladda xmltest diven också?

Permalänk
Medlem

Om du använder en selector så kommer den inte ladda in scriptet.

Utdrag ur jquery koden. för funktionen load().

jQuery.ajax({ url: url, type: type, dataType: "html", data: params, context:this, complete: function( res, status ) { // If successful, inject the HTML into all the matched elements if ( status === "success" || status === "notmodified" ) { // See if a selector was specified this.html( selector ? // Create a dummy div to hold the results jQuery("<div />") // inject the contents of the document in, removing the scripts // to avoid any 'Permission Denied' errors in IE .append(res.responseText.replace(rscript, "")) // Locate the specified elements .find(selector) : // If not, just inject the full result res.responseText ); } if ( callback ) { this.each( callback, [res.responseText, status, res] ); } } });

rscript inehåller ett regex (/<script(.|\s)*?\/script>/gi) för att filtrera bort script taggar. Detta verkar vara en fix för att IE buggar ur (som vanligt).

Permalänk