Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   load обработчики копируются? (https://javascript.ru/forum/jquery/33695-load-obrabotchiki-kopiruyutsya.html)

zaytsewa 04.12.2012 00:36

load обработчики копируются?
 
всем привет!
при загрузке в элемент кода из другого html-документа обработчики событий не копируются?

скрипт внешний, те код скрипта не прописан в html-документе, а подключается в заголовке

вопрос: если я загружу эту страницу в какой-нибудь элемент на исходной странице, все скриптовые обработчики теряются???

danik.js 04.12.2012 08:42

Цитата:

Сообщение от zaytsewa
я загружу эту страницу в какой-нибудь элемент

Как это понять? Какую "эту страницу"? И как какую-то страницу можно загрузить в элемент? О каких обработчиках речь? О тех, которые через атрибуты-события навешаны? Тоесть onclick, onload и тд. (<span onclick="..."></span>)

zaytsewa 04.12.2012 17:32

скрипт с обработчиками form1.js

$(document).ready(function(){
$("#close_btn").click( function(){
...
});

$("#hide_btn").click( function(){
...
	
});
});


form1.html

<html>
<head>
<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="form1.js"></script>
</head>
<body>
<button id='close_btn'>X</button><button id='hide_btn'>-</button>
<table>
..
</table>
</body>
</html>

использование:

<html>
<head>
<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<div id='frames_div'>
</iframe>
</div>
<button id='add_btn'>Добавить</button>
</body>
</html>

script.js

$(document).ready(function(){

$("#add_btn").click(function(){
	var v = $(document.createElement("div"));
	v.load("form1.html");
	$("#frames_div").append( v );
});
});

danik.js 04.12.2012 23:57

Что-то вы не то делаете. Целиком страницу можно только во фрейме открыть, но никак не подгрузить в 'div'. Во-первых у вас в разметке откуда-то взялся закрывающий </iframe> - удалить.
Во вторых, все проще: вместо
var v = $(document.createElement("div"));
    v.load("form1.html");
    $("#frames_div").append( v );

Должно быть
var v = $(document.createElement("iframe"));
    v.src = "form1.html"
    $("#frames_div").append( v );


Внутри фрейма отобразится ваша form1.html, практически полноценно, это как браузер в браузере. Тоесть все скрипты и все такое будет работать как надо.

zaytsewa 05.12.2012 10:05

тут на другом конце форума посоветовали убрать iframe... )


Часовой пояс GMT +3, время: 10:32.