2015-03-06 2 views
0

http://jsfiddle.net/w8ak1yyy/7/Javascript для детей Selector не вызывается

Проект для создания цвета, основанные от ребенка. Я сосредоточен на фиксации LEFT div (GREEN box). Однако, когда я пытаюсь создать больше divs из левой части окна (GREY), он продолжает вызывать родительский div (GREEN). Он не создает div с дочернего щелчка.

Теперь я пытаюсь остановить распространение, чтобы ограничить вызов события только для дочернего элемента, но конкретные селекторы никогда не выбирают ребенка.

ЛИНИЯ 38:

$(".left-child").click(function(event){ 
     propStopped(event); 
     event.stopPropagation(); 
     propStopped(event); 
     alert("Found child"); 
    }); 

этот код должен предназначаться дочерний элемент, но не делает, и я также попытался следующие селекторы ниже, и они также не нашли ребенка.

$(".left-child") 
$(".left > .left-child") 
$("div.left" > .left-child") 

Конечный результат на данный момент должен сделать больше divs влево, нажав левую часть div. Строка 63 начинает добавлять левый div.

Я поместил счетчик, который отображается при нажатии на div, который обновляет родительский div (ЗЕЛЕНЫЙ), а не дочерний.

+0

Вы не можете прикреплять событие к элементу, который еще не существует. Использование делегирования событий: http://api.jquery.com/on/ – JLRishe

+0

Вы не можете работать с динамическим элементом, так как он не был создан в момент, когда вы вызываете свой код. Это должно дать ответ на то, что вы ищете http://stackoverflow.com/questions/12088460/using-on-and-e-stoppropagation-on-dynamic-elements –

ответ

3

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

$(".left").on("click", ".left-child", function(event){ 
    propStopped(event); 
    event.stopPropagation(); 
    propStopped(event); 
    alert("Found child"); 
}); 
+0

Спасибо! Детский элемент называется здесь надлежащим образом. – goda

Смежные вопросы