jQuery on()没有处理加载的元素

时间:2015-09-05 02:40:41

标签: javascript jquery magnific-popup

我正在做文件中所说的一切,但它并没有解雇。

    //Magnific Popup Background Blur

    $('a.video-popup').on('click', function(e) {

        $('.main-wrapper').addClass('blur');
        $('header').addClass('blur');

        console.log('Easy!');

    });

    $('document.body').on('click','.mfp-wrap', function(e) {  //mfp-wrap is background

        console.log('Finallly!!');

        $('.main-wrapper').removeClass('blur');
        $('header').removeClass('blur');
    });

第一个功能非常好,但第二个功能...

情况:

  • 如果按下a.video-popup,弹出窗口会显示背景
  • 加载页面时,弹出元素不在DOM中
  • 如果已加载
  • ,则弹出元素直接位于正文下
  • 如果单击背景,则弹出窗口关闭
  • 我什么都没得到 - 没有删除课程或给consol.log,也没有错误

解决方案:

$('document.body').on('click','.mfp-wrap', function(e) 

$(document).on('click','.mfp-wrap', function(e)

2 个答案:

答案 0 :(得分:2)

在此选择器中

$('document.body')

表示document个节点,其中包含body类而不是body节点

并且没有名称为document

的节点

试试这个

$(document).on('click','.mfp-wrap', function(e)

答案 1 :(得分:0)

尝试替换

$(document.body).on('click','.mfp-wrap'

代表

$('document.body').on('click','.mfp-wrap'