Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Срабатывание события на дочернем элементе (https://javascript.ru/forum/dom-window/71429-srabatyvanie-sobytiya-na-dochernem-ehlemente.html)

PolarWolf1 17.11.2017 23:34

Срабатывание события на дочернем элементе
 
Добрый вечер.

Есть поле по клику на которое внутри него появляется инпут, надо, чтобы в рамках этого инпута не срабатывало родительское событие клика. Как это сделать?

рони 17.11.2017 23:41

PolarWolf1,
function(event) {
  event.stopPropagation();

PolarWolf1 18.11.2017 01:21

$(".chekbox_multilist .chekbox").on("click", function(e) {
		if($(this).hasClass("active_" + $(this).find("input").attr("name"))){
			$(this).removeClass("active_" + $(this).find("input").attr("name"));
			$($(this).find("input[type=number]")).css("display", "none");
		} else {
			$(this).addClass("active_" + $(this).find("input").attr("name"))
			$($(this).find("input[type=number]")).css("display", "inline-block");
		}	
		e.stopPropagation();
		
    })


Так не работает. Куда надо вставить?

рони 18.11.2017 01:41

Цитата:

Сообщение от PolarWolf1
Куда надо вставить?

в клик input или попробуйте так

$(".chekbox_multilist .chekbox").on("click", function(e) {
    if($(e.target).is("input[type=number]")) return;
    if($(this).hasClass("active_" + $(this).find("input").attr("name"))){
      $(this).removeClass("active_" + $(this).find("input").attr("name"));
      $($(this).find("input[type=number]")).css("display", "none");
    } else {
      $(this).addClass("active_" + $(this).find("input").attr("name"))
      $($(this).find("input[type=number]")).css("display", "inline-block");
    }
    })

PolarWolf1 18.11.2017 01:44

Спасибо, разобрался. Понял суть того как работает данный метод.


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