我试图使用YUI中的.all方法将click事件绑定到类的所有实例。由于某种原因,它根本不起作用。这是代码:
YUI().use('io', 'json-parse', 'handlebars', 'node', 'event', function(Y) {
Y.all(".edit-user-button").on("click", function() {
alert("Click worked");
});
});
正如您所看到的,我已经导入了事件和节点模块,但是当我单击具有该类编辑用户按钮的按钮时没有任何反应。
编辑:我使用Handlebars动态生成类edit-user-button的元素。如果该类已经存在于DOM中但由于它是动态加载而失败,否则这将起作用。
答案 0 :(得分:3)
尝试让容器将事件委托给您的按钮。
Y.one(".container").delegate('click', function(){
alert("Click worked");
}, ".edit-user-button")
有关此内容的更多信息:http://yuilibrary.com/yui/docs/event/delegation.html
希望这有帮助!
答案 1 :(得分:2)
原因可能是具有类'编辑 - 用户 - 按钮'是动态创建的(o本身是动态添加的),当设置事件处理程序的代码运行时,它们还不在DOM中。
这可以使用名为Event Delegation
的技术来解决使用YUI库,您可以使用delegate
方法应用该技术:
Y.one(".someContainer").delegate('click', function(){
alert("Click worked");
}, ".edit-user-button")
特定于YUI事件委派here的信息。