【问题标题】:Calling a function inside Jquery on click works first time on page load and afterwards does not在点击时调用 Jquery 中的函数第一次在页面加载时有效,之后则无效
【发布时间】:2020-07-20 17:00:10
【问题描述】:

我试图在单击按钮时弹出一个模态,该模态插件称为 iziModal。我在 WordPress 页面内执行此操作,页面加载后它在第一次尝试时工作,但是当我关闭模式并再次单击按钮时,模式不会弹出但警报功能有效 下面是我的代码

jQuery(document).on('click', '.modal-btn', function (event) {
    event.preventDefault();
    alert("Am here");
    $mentorId = jQuery(this).attr('data-id');
    jQuery('input[name="mentorId"]').val($mentorId);
    jQuery("#modal-popup").iziModal('open');
});

jQuery(document).on('closing', '#modal-popup', function (e) {
    jQuery('#modal-popup').hide();
    jQuery('.iziModal-overlay').hide();
});

【问题讨论】:

  • iziModal('open') 方法可能不只是将display: none 切换到block 或其他。如果有一个 open 方法,应该有一个 close 方法,比如iziMethod('close') 使用它,看看它是否有帮助
  • 我也试过了,close 方法不会从页面中删除模式,所以我必须删除模式的唯一方法是使用 jQuery 隐藏方法隐藏它。我使用 jQuery 而不是 $,因为 wordpress 使用的 jquery 插件只有在我使用 jQuery 时才能与我的代码一起使用。但是,如果我使用 cdn 添加外部 jquery 并切换到 $ 而不是 jQuery。它有效
  • jQuery 等于使用$ 虽然您的wordpress 主题中可能有其他插件/框架使用$,因此使用jQuery 可能更安全冲突。话虽如此,jQuery('#modal-popup').iziModal('close') 应该可以工作

标签: javascript jquery wordpress


【解决方案1】:

试试这个代码

jQuery(document).on('closing', '#modal-popup', function (e) {
    $('#modal-popup').iziModal('close');
});

【讨论】:

  • 您是否在尝试时从代码中删除 jQuery('#modal-popup').hide(); 并尝试更改事件(关闭为关闭)
  • 是的,我删除了隐藏功能并使用了 iziModal('close') 并且我已将关闭更改为关闭它仍然不起作用。但是,当我从 jquery 插件 wordpress 使用切换到外部 jquery cdn 时,它运行良好,但是一些依赖于 wordpress 使用的 jquery 插件的 wordpress 插件停止工作,因为我切换了 jquery
  • 您是否使用了$('#modal-popup').iziModal('close');jQuery('#modal-popup').iziModal('close');,正如我在对您的问题的评论中所建议的那样?使用$ 可能会与其他插件发生冲突。
猜你喜欢
  • 2014-02-08
  • 2018-09-29
  • 2017-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多