所以有了這一點的代碼,我想要顯示覆蓋,.mg-show-info。 elInfoLink的點擊功能按計劃運行。現在我應該讓它的父母可以點擊,因爲已經有另一個事件了,我想我會按照你在這裏看到的那樣去做。現在通過單擊父項,它的子項的功能被調用,並且console.log有效,但是疊加層不顯示。 爲什麼?代碼只是部分執行
var elInfoLink = tile.querySelector('.info-link');
if (elInfoLink) {
$(elInfoLink).parent().click(function (e) {
$(elInfoLink).click();
});
$(elInfoLink).click(function (e) {
e.preventDefault();
e.stopPropagation();
var mg = document.querySelector('#mg');
mg.classList.add('mg-show-info');
mg.dataset.memoryOverlayShowId = tile.dataset.id;
console.log("foo");
});
}
我想它與你的代碼塊中的e.stopPropagation();有關。它會停止事件傳播,從而不會到達父級。 –
[jquery中的e.stopPropagation()在錨標籤上工作的可能重複](http://stackoverflow.com/questions/8952176/does-e-stoppropagation-in-jquery-works-on-anchor-tag) –
@SwashataGhosh他需要'e.stopPropagation'。如果它被刪除,你將在父母 - >孩子 - >父母的事件循環中...' – Rajesh