Выберите Div в JQuery, не выбирая родительский Div

У меня есть следующий скрипт:

$("#border-radius").click(function(){   
var value = $("#border-radius").attr("value");
    $("div.editable").click(function () { 
    mySQLinsert(value, '2', this.id)
     $(this).css({
    "-webkit-border-radius": value
    });  
});                      

});

По сути, идентификатор «#border-radius» предназначен для ввода текста. Вы вводите значение, щелкаете текстовое поле (не могу понять, как это обойти), а затем щелкаете div с классом «редактируемый», и он применяет стиль «-webkit-border-radius» (я знаю, что это не кросс-браузерный), в этот DIV.

Функция mySQLinsert использует Ajax для отправки значения функции mySQLinsert в базу данных mySQL с помощью php-страницы (ничего особенного).

Проблема: когда я щелкаю дочерний элемент div (div внутри элемента div), он также применяет это значение к родительскому объекту, запускает функцию mySQLinsert и сохраняет его в базе данных

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


person Taylor McIntyre    schedule 22.04.2011    source источник
comment
Я не совсем понимаю. Вы хотите остановить всплывающее событие клика?   -  person Ortiga    schedule 22.04.2011
comment
Я не уверен, что это значит.   -  person Taylor McIntyre    schedule 22.04.2011
comment
По сути, если я оберну div a внутри div b и попытаюсь применить стиль радиуса границы, щелкнув div a, он автоматически применит его к div a и b.   -  person Taylor McIntyre    schedule 22.04.2011


Ответы (1)


Вы можете использовать stopPropagation(), чтобы предотвратить переход клика к его родительскому элементу.

$("#border-radius").click(function(){   
    var value = $("#border-radius").attr("value");
    $("div.editable").click(function (e) { 

       // Note the parameter e passed in the function above
       e.stopPropagation();

       mySQLinsert(value, '2', this.id)
       $(this).css({"-webkit-border-radius": value});  
    });                      
});
person Geoff Appleford    schedule 22.04.2011
comment
фантастика. Спасибо, Джефф, это именно то, что мне было нужно. - person Taylor McIntyre; 22.04.2011