代码仅部分执行

时间:2016-11-30 08:45:41

标签: javascript jquery click

所以使用这段代码,我想显示一个叠加层,.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");
  });
}

2 个答案:

答案 0 :(得分:0)

编辑:正如@Rory McCrossan指出的那样,这非常等同于你的符号;这很好。

方法.click()是在元素上注册click事件侦听器的简写。你想要做的是:

$(elInfoLink).parent().click(function (e) {
    $(elInfoLink).trigger('click');
});

答案 1 :(得分:0)

从有限的代码开始,看起来没有"部分执行"这里。 我会重新检查是否将类mg-show-info添加到正确的元素(如果正确选择了该元素)并且加载了相关的CSS。