Jquery в Jquery чрез load

lam3r4370

Registered
Опитвам се ,да заредя страница ,в която има jquery код ,със load функцията на jquery,но ми излиза бяла страница...
 
Искаш да подкараш JS код от страница заредена с аякс?
Слагаш тази функция за callback на load и си готов :)
Ето как става:
Код:
	 function my_callback( data ){
var split = data . split( '#splitme#' );
eval ( split[0] );
$( '#n' ) . html( split[1] );
}

и файла, който се зарежда:
Код:
function ... //js кода
#splitme#
<a href... //html...
 
Еми, както при PHP, jQuery има доста добра документация.
Когато се затрудняваш, винаги отскачай до там :?:
http://docs.jquery.com/Ajax/load#urldatacallback

Ето какво имам предвид:
Принципно като се зареди страница с аякс, всички джаваскрипт и цсс файлове и блокове не биват разчитани като такива. Парсера ги счита като коментар и не ги обработва.

Затова си разделяш кода, който получаваш на 2 блока:
джаваскрипт код, който искаш да се изпълни и html код, който искаш да се вкара в някой елемент на страницата.

Код:
$('#elem').load('test.html', {}, function( data ){
var split = data . split( '#splitme#' ); //разделяме текста получен от страницата на 2 части.
eval ( split[0] ); //Подкарваме джавасктипт частта посредством eval
$( '#elem2' ) . html( split[1] );  //поставяме html частта в някой елемент
});

Не е сложно :)
 
Зареждаш jQuery UI?
Тогава няма смисъл да го правиш по този начин.
Този метод е предимно за обработване на малки динамични джаваскрипт кодове. Ако ще го използваш да зареждаш голям статичен джаваскрипт файл, можеш да го направиш така:

Код:
$.getScript("UI.js");
 
F1r3Fl3x каза:
Зареждаш jQuery UI?
Тогава няма смисъл да го правиш по този начин.
Този метод е предимно за обработване на малки динамични джаваскрипт кодове. Ако ще го използваш да зареждаш голям статичен джаваскрипт файл, можеш да го направиш така:

Код:
$.getScript("UI.js");
Само ,че е с разширение PHP..
 
Сега сложих скрипта в js.

Код:
	<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js" type="text/javascript"></script>

<script>
$(document).ready(function() {
$.getScript("default.js"); 	
});

</script>
</head>
<body>
<body> <div id="elem"></div>
<div id="elem2"></div>
<p>параграф</p>
</body>
</html>
и...не работи...
 
Хмм, виж да не си объркал линка към файла или нещо от този род.
Ако не... Let's go oldschool :D
Код:
var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.setAttribute( 'type', 'text/javascript' );
script.setAttribute( 'src', 'default.js' );
head.appendChild( script );
Сложи го в $(document).ready(function(){
...
});
 

Back
Горе