JQuery селектор для целевых элементов с возможным содержанием текста? - PullRequest
0 голосов
/ 18 августа 2011

Я хочу, чтобы событие click вызывалось для любого элемента с классом «редактируемый», который имеет или может иметь (или традиционно имеет) текстовое содержимое: a, li, h1, h2, h3, p .. но не video, imgи другие элементы, которые непосредственно не содержат текст.

Есть ли способ сделать это без ссылки на конкретные элементы HTML?или .. как бы исключить определенные типы элементов из следующего:

$(".editable").click(function(event) {
   alert("edit text!");
});

Ответы [ 2 ]

1 голос
/ 18 августа 2011

Я сомневаюсь, что существует предопределенный селектор, который будет выбирать только эти элементы.
Что касается исключения, вы можете использовать функцию not ():

$(".editable").not("video").not("img")
 .click(function(event) {
   alert("edit text!");
});

Вот документация: http://api.jquery.com/not/

РЕДАКТИРОВАТЬ: вероятно, будет более эффективно вызывать функцию один раз таким образом:

$(".editable").not("video,img")
 .click(function(event) {
   alert("edit text!");
});
0 голосов
/ 18 августа 2011

Вы можете исключить использование неселектора или функции.

Селектор

$('.editable:not(video, img)').click(function(e){

});

Функция

$('.editable').not('video, img').click(function(e){

});

JSFiddle с примером

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...