Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.05.2014, 16:29
Интересующийся
Отправить личное сообщение для jk888 Посмотреть профиль Найти все сообщения от jk888
 
Регистрация: 12.11.2013
Сообщений: 16

Многократная подгрузка скриптов
Допустим, у нас есть такие скрипты:

index.php
<?php
echo "
	<script src='jquery-1.11.0.js'></script>
	<script src='work.js'></script>
	<a href='' class='href1'>HREF</a><br><br>
	<a href='' class='hrefPlus'>HREF PLUS</a><br><br>
	<div class='toLoad'></div>
";
?>


work.js
$(document).ready(function(){
$('.href1').click(function(){
	console.log('href1');
	return false;
	});
$('.hrefPlus').click(function(){
	$('.toLoad').load('get.php');
	console.log('hrefPlus');
	return false;
	});
$('.href2').click(function(){
	console.log('href2');
	return false;
	});
});


get.php
<?php
echo "
	<a href='' class='href2'>HREF 2</a><br><br>
	<script src='work.js'></script>
";
?>


Так вот, если в get.php не добавить строчку <script src='work.js'></script>, то HREF 2 появившись в toLoad не работает как надо.

Вопрос в том, если work.js будет большого размера, и подгружаться через get.php может много раз (от перезагрузки до перезагрузки страницы), то не повлияет ли это на... на что-то же это наверное должно повлиять?

Кажется, что это как-то неправильно. Может быть есть другой способ?
Ответить с цитированием
  #2 (permalink)  
Старый 04.05.2014, 17:05
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от jk888
$('.href2').click
клик вам надо ставить на элемент который неподгружается а не на $('.href2'). -- используйте on -- $('body').on('click', '.href2', function(){}) тогда ненужна многократная подгрузка
Ответить с цитированием
  #3 (permalink)  
Старый 04.05.2014, 18:36
Интересующийся
Отправить личное сообщение для jk888 Посмотреть профиль Найти все сообщения от jk888
 
Регистрация: 12.11.2013
Сообщений: 16

Спасибо.

В том примере который я указал, теперь с on() все работает правильно, но вот там, где мне надо это применить, нет.

У меня там дивы со ссылкми (которые должен ловить on()) добавляются не просто через лоад, а вот так

function reloadDir(idTov) {
$.get('?wr=reloadDir&id='+idTov,function(data){
	$('a[name^="dir"]').each(function(i){
		var num = $(this).attr('name').replace('dir','');
		if (num == idTov) $(this).html(data);
		});
	});
}


Может ли такой способ быть проблемой?


На существующие и вновь добавленные дивы ранее стоял ховер, теперь я поменял его на $('body').on('mouseenter'... и все осталось как было до переделки на on(), но вот клик, что-то теперь никак не ловится.

Последний раз редактировалось jk888, 04.05.2014 в 18:39.
Ответить с цитированием
  #4 (permalink)  
Старый 04.05.2014, 19:23
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

jk888,
информации недостаточно.
и где click в вашем коде?
об остальном нужно догадаться?
Ответить с цитированием
  #5 (permalink)  
Старый 04.05.2014, 19:25
Интересующийся
Отправить личное сообщение для jk888 Посмотреть профиль Найти все сообщения от jk888
 
Регистрация: 12.11.2013
Сообщений: 16

Видимо дело было в маршруте.
Там где раньше работало $(".admRed a").click(function(){
пришлось сделать так $('.toLoad').on('click', 'table.admRed tr td a', function(){
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
fancybox iframe подгрузка скриптов Pashok jQuery 2 29.01.2014 01:32
dhtmlLoadScript динамическая подгрузка скриптов Redya69 Events/DOM/Window 3 13.08.2013 21:39
ajax + динамическая подгрузка скриптов czp AJAX и COMET 3 26.03.2013 22:31
AMD Подгрузка скриптов (RequireJS) Quieteroks Events/DOM/Window 9 07.12.2012 16:21
подгрузка скриптов банеров из файла на сайт Monk Javascript под браузер 0 24.04.2011 03:16