щелкнув несколько элементов одновременно, что такое «это» - PullRequest
0 голосов
/ 24 августа 2011

Мне кажется, что должен быть гораздо лучший способ выразить следующее условие:

if(node.is('a') || node.parent().is('a')){
        foo
    }

Я хочу это для элементов, которые обернуты в тег привязки, и чтобы можно было легко получать / манипулироватьhref, когда это прямая цель или родитель.

<a href="#"><img src="#" /></a>

При нажатии на изображение, как указано выше, событие, кажется, захватывает только <img>, а не <a> упаковкаЯ хочу иметь возможность играть с обоими одним щелчком мыши.

Подробнее о том, что я делаю, - попытаться создать интерфейс, позволяющий щелкать по кнопке и редактировать определенные текстовые области (некоторые из которыхесть ссылки вокруг них) и изображения.У меня есть .editable класс, который я слушаю.У меня это работает с обычными ссылками и текстом;пытаясь выяснить, как начать загрузку изображений. больше кода

Ответы [ 3 ]

1 голос
/ 24 августа 2011
var $img = $(this)
,   $a   = $img.parent('a');

if($a.length) {
    //Do stuff if img is in anchor
}

Если якоря нет, длина будет равна 0. Вот jsfiddle, чтобы продемонстрировать это http://jsfiddle.net/Akkuma/2UMvj/

Альтернативой является наложение всех a, но я предполагаю, что эта логика нужна вам только при нажатии img.

Если вам нужно, чтобы код срабатывал только при нажатии img внутри a, вы можете сделать это

$('a').delegate('img', 'click', function () {
    var $img = $(this)
    ,   $a   = $img.parent();
});

Примером этого является http://jsfiddle.net/Akkuma/BS54P/

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

Вы можете получить оба, прикрепив событие click к вашей ссылке, от родительского элемента, который вы можете отфильтровать до дочернего. Вот так ...

$('a').click(function(){
    var thilink = $(this).attr('href');
    var thiscontent = $(this).html();
});

EDIT

Или, если изображение является объектом интереса, какую функцию выше, вы можете добавить,

    var thisimg = $(this).find('img');
    \\then you can access any number of properties including src and manipulate them via
    var currentsrc = thisimg.attr('src');
1 голос
/ 24 августа 2011
function whoGotClicked(who){
if (node.is("a"))
     alert("im an anchor");
    else
        alert("im a"+node.get(0).tagName);

}

$("img").click(function(e){
    node=$(this).parent();
    whoGotClicked(node);
    return false;
});

вот скрипка http://jsfiddle.net/LZxRd/2/

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