Обр событий не реагирую на спарсенный код 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'); ПОЧЕМУ? Буду благодарен вашим ответам))) |
Кирюха =),
Посколь страница подгружаема - обработчик нужно ставить через live или on( в последней версии JQ ) События без этого - вешаются ток на существующий элемент DOM |
Версия у меня 1.7.2 а как это через live?
|
Кирюха =),
Это как раз через on http://api.jquery.com/on/ |
Что то не нашел в инете как ее использовать с hover
|
Дак в моем случае что лучше использовать live или on?
|
В моем случае лучше использовать on.Вот нашел хорошую документацию
http://jquery.page2page.ru/index.php5/On Но я не вижу в Типы обрабатываемых событий hover'a...... |
С обработчиками более менее ясно, а с удаление атрибутов что то не очень ведь
jQuery('#calendarrr A').removeAttr('title').removeAttr('href');тоже не работает хоть это и не обработчик |
Кирюха =),
Их нун ставить в конец callback - загрузки контента |
Цитата:
попробуйте так $("#ggg").load("/222.php div#logo_and_search",function(){ jQuery('#calendarrr A').removeAttr('title').removeAttr('href');}); |
Ураааа!!! работает!!! спасибо Deff, что бы я балбес без вас делал...
|
vadim5june я точно так и сделал, засунул в братный вызов
|
В методе .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? |
mouseover
|
Выложите старый код
|
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); }); }); }); |
Если Вы загрузите соответствующий скрипт из обработчика load то ничего переделывать не надо будет
$("#ggg").load("/222.php div#logo_and_search",function(){ jQuery.getScript( url [, success(script, textStatus, jqXHR)] )}); |
меня этот вариант устраивает, а не могли бы вы показать пример использования getScript а то пока я найду и пока до меня допрет......
|
Цитата:
<script src='tratata.js'></script> только динамическая во время выполнения программы http://api.jquery.com/jQuery.getScript/ |
Цитата:
|
Так просто? Что то не вериться.... ну сейчас попробую
|
$.getScript("test.js",function(data, textStatus, jqxhr){alert('скрипт загружен');//здесь пробуем как работают события }); |
Вы мне не поверите но работает даже в ie!!!!!!!!!!Спасибо вам большое.Deff и vadim5june объявляю вам благодарность, вы меня очень выручили и добавили в мою копилку еще больше знаний))))
|
я сделал по проще
$(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"); }); }); |
удалил
|
Часовой пояс GMT +3, время: 02:20. |