我在 stackoverflow 上找到了很多关于这个主题的文章,但没有人给我一个解决我确切问题的方法。
我有一个到目前为止运行良好的 jQuery 插件。在那个插件中,我添加了一些新的DIVs
. 我还想在这些新的DIVs
. 像这样:
(function ($) {
$.fn.myFunc = function(options) {
// Options + Defaults
var settings = $.extend({
// Some options in here
}, options);
var controls = "\
<div class='controls'>\
<button class='btn-add-text'>Add Text</button>\
</div>\
";
$('.btn-add-text').click(function() {
alert("Test");
});
$(this).after(controls);
return this;
};
})(jQuery);
我的第一个想法是,这是不可能的,因为在新 div 实际上位于 DOM 内部之前调用了事件侦听器,因此它无法工作。所以我将 .click(func... 块移到插件代码之外,并将其放在 document.ready 函数中,如下所示:
$(document).ready(function() {
$('.btn-add-text').click(function() {
alert("Test");
});
});
这对我也不起作用。这个问题有什么解决办法吗?