.remove для родителя возникает и при клике на потомка. Как отключить?
Кодеры, приветствую вас и прошу помощи!
Добавляю элемент. $("body").append('<div id="read"><div id="onread">' + msg + '</div></div>' ); Пытаюсь убрать. Так не работает. $("#read").click(function() { $("#read").remove(); }); Работает так. $("#read").live("click", function() { $("#read").remove(); } Хрен бы сним, но .live убивает всё и при клике на внутренний блок #onread, то есть - передаётся родителю #read - а это не гуд. Как сделать так, чтобы при клике на вложенный блок события click для родителя #read не возникало. |
Камараден, ну хоть что-то скажите :)
Может что-то типа того (коряво, простите): if ('#onread').onmouseover(function {ничего не делать} ) else $("#read").remove(); |
Вот так:
http://jsfiddle.net/7RZUC/27/ |
Ссылка не работает
Нагуглил теорию: Цитата:
Как не дать ему всплыть от потомка? Как-то так, но куда встраивать? В If $("#onread").click()? $("p").click(function(event){ event.stopPropagation(); // do something }); Всё, решил вопрос. Оказалось всё просто. $("#onread").live("click", function(event){ event.stopPropagation(); }); $("#read").live("click", function() { $("#read").remove(); }); Но тем не менее, хотелось бы понять, почему не работает OnClick (а точнее, .click в JQuery), а работает .live? Из-за динамического добавления блоков в DOM? |
Часовой пояс GMT +3, время: 17:34. |