2013-04-29 2 views
0

я следующий код ведьма работает отлично:фильтра Нажмите событие в документе

$(document).on('click','.with-hidden-caption', function(){ 
    if (window.matchMedia("(min-width: "+colum+")").matches || !$(this).parents(".my-wrapper").length) { 
     $(this).toggleClass('show-caption') 
     $(this).find('figcaption').slideToggle("fast"); 
    } 
}); 

Теперь я хотел бы узнать, где в .СЕ-скрытых титры»щелкают на toggleClass в зависимости, где клик , Другими словами: если щелчок находится на newToolBar, крик не запускается.

Вот мой HTML:

<figure class="with-hidden-caption"> 
<figcaption>Hello  
    <div class="newToolBar"> if here is clicked do something else but not $(this).toggleClass('show-caption') </div> 
      </figcaption> 
          </figure> 

Как я могу получить его.

ответ

0

Попробуйте это:

$(document).on('click','.with-hidden-caption', function(){ 
    if ($(e.target).hasClass('newToolBar')) return; 
    if (window.matchMedia("(min-width: "+colum+")").matches || !$(this).parents(".my-wrapper").length) { 
     $(this).toggleClass('show-caption') 
     $(this).find('figcaption').slideToggle("fast"); 
    } 
}); 

Мы будем проверять, если элемент должен в данный момент щелкнул e.target имеет класс newToolBar то делать ничего не выполнять эту функцию.

0

Вы можете получить имя класса в данный момент щелкнул элемента с помощью

$(document).on('click','.with-hidden-caption', function(e){ 
    var clsName = e.target.className; 
    if(clsName == 'newToolBar') 
    { 
    return false; 
    } 
    else 
    { 
    if (window.matchMedia("(min-width: "+colum+")").matches || !$(this).parents(".my-wrapper").length) { 
     $(this).toggleClass('show-caption') 
     $(this).find('figcaption').slideToggle("fast"); 
    } 
} 
}); 

это то, что вам нужно ..?

+1

THx Misam. Это работает, проблема в том, что у меня есть несколько классов. Я думаю, что предложение Палаша более вопиющее и работает. – hamburger

0

Попробуйте

$(document).on('click','.with-hidden-caption', function(){ 
    if($(e.target).closest('.newToolBar').length) return 
    if (window.matchMedia("(min-width: "+colum+")").matches || !$(this).parents(".my-wrapper").length) { 
     $(this).toggleClass('show-caption') 
     $(this).find('figcaption').slideToggle("fast"); 
    } 
}); 
Смежные вопросы