이벤트 위임을 사용합니다.
$('body').on('click', '[data-vzpop]', function(evt) {
값에 관계없이에 evt.target
데이터 속성이있는 경우에만 트리거됩니다 data-vzpop
.
내부의 항목도 [data-vzpop]
트리거하도록하려면 원래 클릭 이벤트를 사용하지만을 확인 $(clickTarget).closest('[data-vzpop]').length > 0
하여 중첩 된 대상인지 확인합니다.
$('body').on('click', function(evt){
var clickTarget = evt.target;
if ($(clickTarget).attr('data-vzpop') != null ||
$(clickTarget).closest('[data-vzpop]').length > 0){
evt.preventDefault();
console.log('called correctly')
} else {
console.log('not called correctly')
}
console.log(clickTarget)
});
출처
https://stackoverflow.com/questions/22050289