【问题标题】:bind click to ajax loaded content, pure JavaScript, no jQuery [duplicate]将点击绑定到 ajax 加载的内容,纯 JavaScript,没有 jQuery [重复]
【发布时间】:2017-08-03 09:24:15
【问题描述】:

我想知道如何将点击事件绑定到稍后将通过 ajax 调用添加的元素。我知道在 jQuery 中你可以这样做:

$(document).on('click', '.ajax-loaded-element' function(){});

但我现在没有使用 jQuery。 我的想法是这样的,但是如果您两次调用同一个文件,那将不起作用(不确定是否需要它,但我想让它防弹)。

bindAjaxBtn: function(selector, fnName) {
    let isBinded = false;
    document.addEventListener('click', function(e) {
        const btn = document.querySelector(selector);
        if(btn === e.target) {
            if(!isBinded) {
                btn.addEventListener('click', function() {
                    fnName();
                    isBinded = true;
                });
                btn.click();
            }
        }
    });
},

任何帮助将不胜感激。 :)

【问题讨论】:

    标签: javascript ajax addeventlistener


    【解决方案1】:

    它非常简单。你可以试试这个。 这将对您有所帮助。

    document.getElementById('btn').setAttribute('onClick','myfunction()');
    function myfunction(){
      alert('Button Clicked');
    }
    <button id="btn">Click Here</button>

    快乐编码。

    【讨论】:

    • 没有。使用您的代码,您不会在父节点上绑定事件。您在尚未在页面上的元素上绑定事件(因为已加载 ajax)。
    猜你喜欢
    • 2023-04-04
    • 2012-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-18
    相关资源
    最近更新 更多