このコードでは、オーバーレイを表示したい、.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'を必要とします。削除された場合、あなたは 'parent - > child - > parent ... 'のイベントサイクルに入ります。 – Rajesh