Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Обр событий не реагирую на спарсенный код load() (https://javascript.ru/forum/jquery/30413-obr-sobytijj-ne-reagiruyu-na-sparsennyjj-kod-load.html)

Кирюха =) 03.08.2012 12:37

Обр событий не реагирую на спарсенный код load()
 
Всем Доброго времени суток! Название темы слегка запутанно, так что уважаемые программисты попытаюсь объяснить....Объяснять буду на реальном примере, так нагляднее будет.
Есть страничка spravka.kamskie.ru.Методом load() она подгружает разметку календаря и информера погоды со страницы spravka.kamskie.ru/222.php. Так же есть фаил js с обработчиками событий подключается к странице
<script type="text/javascript" src="http://kamskie.ru/obr.js"></script>

но обработчики(кстати они как раз поставлены на информер и календарь) почему то не работают..... не работает и просто удаление атрибутов например
jQuery('#calendarrr A').removeAttr('title').removeAttr('href');

ПОЧЕМУ? Буду благодарен вашим ответам)))

Deff 03.08.2012 12:54

Кирюха =),
Посколь страница подгружаема - обработчик нужно ставить через live или on( в последней версии JQ )
События без этого - вешаются ток на существующий элемент DOM

Кирюха =) 03.08.2012 12:57

Версия у меня 1.7.2 а как это через live?

Deff 03.08.2012 12:59

Кирюха =),
Это как раз через on http://api.jquery.com/on/

Кирюха =) 03.08.2012 12:59

Что то не нашел в инете как ее использовать с hover

Кирюха =) 03.08.2012 13:00

Дак в моем случае что лучше использовать live или on?

Кирюха =) 03.08.2012 13:08

В моем случае лучше использовать on.Вот нашел хорошую документацию
http://jquery.page2page.ru/index.php5/On
Но я не вижу в Типы обрабатываемых событий hover'a......

Кирюха =) 03.08.2012 13:16

С обработчиками более менее ясно, а с удаление атрибутов что то не очень ведь
jQuery('#calendarrr A').removeAttr('title').removeAttr('href');
тоже не работает хоть это и не обработчик

Deff 03.08.2012 13:25

Кирюха =),
Их нун ставить в конец callback - загрузки контента

vadim5june 03.08.2012 13:26

Цитата:

Сообщение от Кирюха =)
.... не работает и просто удаление атрибутов например

Вы пытаетесь удалить даже не дождавшись загрузки
попробуйте так
$("#ggg").load("/222.php div#logo_and_search",function(){ jQuery('#calendarrr A').removeAttr('title').removeAttr('href');});

Кирюха =) 03.08.2012 13:28

Ураааа!!! работает!!! спасибо Deff, что бы я балбес без вас делал...

Кирюха =) 03.08.2012 13:29

vadim5june я точно так и сделал, засунул в братный вызов

Кирюха =) 03.08.2012 13:33

В методе .on() есть такой параметр events
он может иметь значения
blur, focus, focusin, focusout, load, resize, scroll, unload, click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, error.
Привычного hover'a я не вижу..... то получается надо устанавливать 2 обработчика? Один на mousemove а второй на mouseout?

Deff 03.08.2012 13:44

mouseover

Deff 03.08.2012 13:46

Выложите старый код

Кирюха =) 03.08.2012 13:58

jQuery(document).ready(function(){
      jQuery(".sssss, .vvvvv").click(function(){
	  var informa = jQuery(this).find(".infirmation").text();
      window.location = informa;
      return false;
      });
	  jQuery("#afff").click(function(){
	  jQuery("#afff-open").slideToggle("normal");
	  return false;
	  });
});

jQuery(document).ready(function(){
    jQuery('#calendarrr A').removeAttr('title').removeAttr('href');
	
	//обработчик календаря
	var intervalID1;
	jQuery('#calendarrr').hover(function(){
	 var popup1 = jQuery('#calend-hover');
	   intervalID1=setTimeout(
		function() {
		popup1.fadeIn(400);
		}, 350);
	   },
	   function(){
	   	   jQuery('#calend-hover').fadeOut(400);
		   clearInterval(intervalID1);
	   });
	   
	   
	   //обработчик информера погоды
	   var intervalID2;
           jQuery('.perobl').hover(function(){
                var aa = jQuery(this);
	   	   intervalID2=setTimeout(
		function() {
		aa.find('#dop-info').fadeIn(200);
		aa.find('.arrow-weather').fadeIn(200);
		}, 350);
	   },function(){
	   jQuery(this).find('#dop-info').fadeOut(200);
	   jQuery(this).find('.arrow-weather').fadeOut(200);
	    clearInterval(intervalID2);
	   });

       //ОБРАБОТЧИКИ СТРЕЛОК НА ИНФОРМЕРЕ


     // ПЕРВЫЙ 
           jQuery('#perobl1 .vpered').click(function(){
		     jQuery('#perobl1').fadeOut(200,function(){
			     jQuery('#perobl2').fadeIn(200);
			 });
		   });	 
	// второй 
          	
           jQuery('#perobl2 .vpered').click(function(){//вперед
		     jQuery('#perobl2').fadeOut(200,function(){
			     jQuery('#perobl3').fadeIn(200);
			 });
		   });	
           	jQuery('#perobl2 .nazad').click(function(){//назад
		     jQuery('#perobl2').fadeOut(200,function(){
			     jQuery('#perobl1').fadeIn(200);
			 });
		   });

// третий 
          	
           jQuery('#perobl3 .vpered').click(function(){//вперед
		     jQuery('#perobl3').fadeOut(200,function(){
			     jQuery('#perobl4').fadeIn(200);
			 });
		   });	
           	jQuery('#perobl3 .nazad').click(function(){//назад
		     jQuery('#perobl3').fadeOut(200,function(){
			     jQuery('#perobl2').fadeIn(200);
			 });
		   });
// четвертый 
	
           	jQuery('#perobl4 .nazad').click(function(){//назад
		     jQuery('#perobl4').fadeOut(200,function(){
			     jQuery('#perobl3').fadeIn(200);
			 });
		   });	
});

vadim5june 03.08.2012 14:08

Если Вы загрузите соответствующий скрипт из обработчика load то ничего переделывать не надо будет
$("#ggg").load("/222.php div#logo_and_search",function(){ jQuery.getScript( url [, success(script, textStatus, jqXHR)] )});

Кирюха =) 03.08.2012 14:20

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

vadim5june 03.08.2012 14:24

Цитата:

Сообщение от Кирюха =) (Сообщение 194297)
меня этот вариант устраивает, а не могли бы вы показать пример использования getScript а то пока я найду и пока до меня допрет......

та же загрузка скрипта что делаем строкой
<script src='tratata.js'></script>

только динамическая во время выполнения программы
http://api.jquery.com/jQuery.getScript/

Deff 03.08.2012 14:28

Цитата:

Сообщение от Кирюха =)
а не могли бы вы показать пример использования getScript

$.getScript("test.js");

Кирюха =) 03.08.2012 14:31

Так просто? Что то не вериться.... ну сейчас попробую

vadim5june 03.08.2012 14:35

$.getScript("test.js",function(data, textStatus, jqxhr){alert('скрипт загружен');//здесь пробуем как работают события
});

Кирюха =) 03.08.2012 14:35

Вы мне не поверите но работает даже в ie!!!!!!!!!!Спасибо вам большое.Deff и vadim5june объявляю вам благодарность, вы меня очень выручили и добавили в мою копилку еще больше знаний))))

Кирюха =) 03.08.2012 14:36

я сделал по проще
$(document).ready(function(){
   $("#ggg").load("/222.php div#logo_and_search", function(){
   jQuery('#calendarrr A').removeAttr('title').removeAttr('href');
   $.getScript("http://spravka.kamskie.ru/obr.js");
   });
});

vadim5june 03.08.2012 14:46

удалил


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