Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   fade маленького div внутри большого div (https://javascript.ru/forum/jquery/28431-fade-malenkogo-div-vnutri-bolshogo-div.html)

vadim5june 19.05.2012 15:01

если так написать-не будет разве
$('div').live('click', function (event) {...

kenwo0d 19.05.2012 15:14

Цитата:

Сообщение от vadim5june (Сообщение 175403)
если так написать-не будет разве
$('div').live('click', function (event) {...

Не будет тут четко написано http://api.jquery.com/event.stopPropagation/ (Additional Notes)... Решил проблему через delegate()...
Таким образом:
$('.big').delegate(this, 'click', function () {
event.stopPropagation();
});

kenwo0d 19.05.2012 15:21

Ага фиг там, а не решил, delegate не работает при подогружаемом контенте... и через live() неработает, подскажет кто? или я так понял это жопа ?

vadim5june 19.05.2012 15:23

Цитата:

Сообщение от kenwo0d (Сообщение 175404)
Не будет тут четко написано http://api.jquery.com/event.stopPropagation/ (Additional Notes)... Решил проблему через delegate()...
Таким образом:
$('.big').delegate(this, 'click', function () {
event.stopPropagation();
});

Я пишу без jquery-в некоторых случаях легче динамически добавлять событие после добавления элемента(тогда без проблем работает) чем изучать все тонкости работы live delegate bind итд

kenwo0d 19.05.2012 16:01

А как добавлять событие динамически после добавления элемента, какойто простой пример можно? Просто 2 день пробую jquery...

vadim5june 19.05.2012 16:08

без jquery просто addEventListener
или кроссбраузерно функция addEvent
function addEvent(elem, evType, fn) {
if (elem.addEventListener) {
elem.addEventListener(evType, fn, false);
}
else if (elem.attachEvent) {
elem.attachEvent('on' + evType, fn)
}
else {
elem['on' + evType] = fn
}
}

это где то здесь 10 лучших функций javascript я взял

kenwo0d 19.05.2012 16:20

Цитата:

Сообщение от vadim5june (Сообщение 175415)
без jquery просто addEventListener
или кроссбраузерно функция addEvent
function addEvent(elem, evType, fn) {
if (elem.addEventListener) {
elem.addEventListener(evType, fn, false);
}
else if (elem.attachEvent) {
elem.attachEvent('on' + evType, fn)
}
else {
elem['on' + evType] = fn
}
}

это где то здесь 10 лучших функций javascript я взял

Решил проблему подругому.
В live() можно использовать stopPropagation() таким образом.

Если писать так, то НЕ работает:
$('.big').live('click', function (event) {
event.stopPropagation();
});

А если написать так, то работает:

$('.big').live('click', function (e) {
e.stopPropagation();
});

Нарыл тут: http://stackoverflow.com/questions/3...th-live-method

vadim5june 19.05.2012 16:27

Потестируй теперь-может на этот раз получилось


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