Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Jquery live не всегда срабатывает (https://javascript.ru/forum/jquery/12593-jquery-live-ne-vsegda-srabatyvaet.html)

JIEXA 25.10.2010 12:48

Jquery live не всегда срабатывает
 
Весит у меня обработчик событий, кликов по ссылкам, такой:

$("a:not(.nolink)").live('click', function(e){					
		var path = this.href.replace(/^.*#/, '');
		goPage(path);
		
		e.preventDefault();
	});


Но в куча народу жалуются, что у них не перехватывает событие клика по ссылке и переходит по ней...

Все, кто жалуются - сидят на Opera 10.62/10.63

Я пробовал в этой версии Opera - все работает.

Пробовал оборачивать его в document.ready() тогда жалоб еще больше.

Используется это дело в iframe-приложении Контакта - http://vkontakte.ru/app1905375

Из-за чего такая проблема может возникать и как можно побороть?

Всем заранее спасибо!

vflash 25.10.2010 13:28

e.preventDefault(); не отработал. возможно ошибка в goPage(path); или this.href не string(хотя это врятли).

ведите лог ошибок на клиенте, только не сжимайте код в одну строчку иначе всегда ошибка будет в первой строчке.
window.onerror = function(a, b, c) {new Image().src = "/4tota/?err="+escape(a)+','+escape(b)+','+escape(c);}

JIEXA 25.10.2010 14:01

Сейчас попробую, но боюсь он забьется ошибками вида:

!:@8?BC <http://kontakter.me> >B:070=> 2 @07@5H5=88 =0 2K7>2 <5B>40 Location.toString =0 <http://vkontakte.ru>.

Которые возникают в FF из-за вставленного флеш-видео.

UPD: Хотя нет, не забьется, такие ошибки возникают только на localhost

JIEXA 25.10.2010 14:16

Вот первый лог http://dumpz.org/23441/

Куча левых ошибок, в подключаемых скриптах, они как-то могут влиять на сробатывание live?

vflash 25.10.2010 17:34

JIEXA, если до e.preventDefault(); произошла ошибка то естественно отмены события браузера не будет. live тут не причем.

e.preventDefault(); можно перенести в начало функции тогда хотяб перехода по ссылки браузером не будет. но это ошибки не исправит.

скорее всего ошибка в коде функции goPage или кудато туда дольше.

JIEXA 25.10.2010 17:50

Спасибо за помощь. Попробую перенести выше.

Функция goPage проста:

function goPage(path) {
	VK.callMethod("setLocation", path);
	
	var h = window.location.href;
	var h = h.split('post_id').join('nepost_id');
	var href = h.substr(0, h.indexOf('&hash=') + 6) + escape(path);

	window.location.href = href;
}


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