如何将我的jQuery插件应用于动态创建的元素
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将我的jQuery插件应用于动态创建的元素相关的知识,希望对你有一定的参考价值。
我正在构建一个动态生成部分元素的应用程序,其样式为便利贴。我正在配置此应用程序采取jQuery插件的形式。生成部分的功能很好,但我无法在部分上呈现我的默认插件样式选项。基本上,我的插件似乎不适用于我动态创建的元素。有关如何解决此问题的任何建议?见下面的代码。谢谢!
index.html
<div id="mylist"></div>
<input type="button" id="NewElement" value="New Element">
<script src="script.js"></script>
<script>
$("section").newNote();
</script>
script.js
(function ( $ ) {
$.fn.newNote = function(options) {
$('#NewElement').on('click',function(){
$('#mylist').append("<section></section><br />");
});
var settings = $.extend({
radius: 3,
border: 0,
background: "linear-gradient(#f9efaf, #f7e98d)",
resize: "none",
width: "20%",
padding: 20,
overflow: "hidden",
height: 200,
margin: "1%",
float: "left"
}, options );
return this.css({
radius: settings.radius,
background: settings.background,
resize: settings.resize,
width: settings.width,
padding: settings.padding,
overflow: settings.overflow,
height: settings.height,
margin: settings.margin,
float: settings.float
});
};
}( jQuery ));
答案
更新您的方法,如下面的代码段所示
(function ( $ ) {
$(document).on('click', '#NewElement', function () {
$('#mylist').append("<section></section><br />");
$('section').newNote();
});
$.fn.newNote = function(options) {
var settings = $.extend({
radius: 3,
border: 0,
background: "linear-gradient(#f9efaf, #f7e98d)",
resize: "none",
width: "20%",
padding: 20,
overflow: "hidden",
height: 200,
margin: "1%",
float: "left"
}, options );
return this.css({
radius: settings.radius,
background: settings.background,
resize: settings.resize,
width: settings.width,
padding: settings.padding,
overflow: settings.overflow,
height: settings.height,
margin: settings.margin,
float: settings.float
});
};
}( jQuery ));
<div id="mylist"></div>
<input type="button" id="NewElement" value="New Element">
<script src="script.js"></script>
以上是关于如何将我的jQuery插件应用于动态创建的元素的主要内容,如果未能解决你的问题,请参考以下文章