无法获取jQuery on()来注册动态添加的内容

tri*_*tyb 5 jquery delegates function live

我对jQuery中的on()方法很陌生,但是现在是我需要使用它的时候了.

我有两个功能点击特定按钮.每个函数都适用于页面上最初的任何元素,但不适用于任何动态添加的内容(更多相同的按钮).我知道我需要在这里和谷歌上阅读其他答案后使用on()函数,但我仍然遇到麻烦.无论如何,代码:

jQuery("ul#THEBUTTONS").on({
    click: function(event){
        event.preventDefault();
        console.log("apaz clicked");
    }
}, "a.azaz");


jQuery("ul#THEBUTTONS").on({
    click: function(event){
        event.preventDefault();
        console.log("mapaz clicked");
    }
}, "a.mapaz");
Run Code Online (Sandbox Code Playgroud)

任何帮助都会非常感激,在这里撕裂我的头发.

Ric*_*gan 8

.on()基本上有两种口味:一种表现得像.bind(),另一种表现得像.delegate().

对于您的问题,您想要使用该delegate版本.作为参考,on签名是这样的:

// bind
$(element-selector).on(event, handler)

// delegate
$(container-selector).on(event, element-selector, handler)
Run Code Online (Sandbox Code Playgroud)

最快速的方法是阅读delegate它,它是什么,如何使用,然后应用它on.