jQuery - Событие Click на отделении, но не на флажке в отделении

Я пытаюсь установить событие щелчка на отделении, и я хотел бы, чтобы то событие стреляло, если то отделение нажато где-нибудь кроме флажка в отделении. Если флажок нажат, я не хочу, чтобы событие щелчка отделения стреляло. Я устанавливаю событие щелчка на флажке и возвращенном false, который останавливает событие щелчка отделения, но не позволяет флажку становиться проверенным также. Вот то, что я имею теперь:

$('.theDiv').click(function() {
    // Click event for the div, I'm slide toggling something
    $('.sub-div', $(this)).slideToggle();
});

$('.checkboxInTheDiv').click(function() {
    // Do stuff for the checkbox click, but dont fire event above
    return false; // returning false won't check/uncheck the box when clicked
})
5
задан Ryan 11 January 2010 в 18:00
поделиться

3 ответа

Вместо того, чтобы возвращать false, что предотвращает действие по умолчанию, попробуйте просто остановить распространение.

$('.checkboxInTheDiv').click( function(e) {
    e.stopPropagation();
    ... other stuff...
    return true;
});
15
ответ дан 18 December 2019 в 09:07
поделиться

Вам нужно будет посмотреть на объект , переданный в обработчик клика и посмотреть, какой тип имеется. Посмотрите на документацию Event.type для получения дополнительной информации.

function handler(event) {
  var $target = $(event.target);
  if( $target.is("li") ) {
    $target.children().toggle();
  }
}

$("ul").click(handler).find("li > ").h

Примечание. Код скопирован из связанного URL.

3
ответ дан 18 December 2019 в 09:07
поделиться

Попробуйте простое возвращение ;

0
ответ дан 18 December 2019 в 09:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: