【发布时间】:2012-08-27 00:54:41
【问题描述】:
http://blog.jeremymartin.name/2008/02/building-your-first-jquery-plugin-that.html
根据本教程,我创建了我的第一个插件并进行了一些修改。 但是,当我在网站上加载新内容时,该插件不适用于动态生成的内容。
我不知道如何让它直播。这些事件已经在使用.on,但是插件的构建不起作用。
这里是 jsFiddle:http://jsfiddle.net/bT4dH/13/
我知道我可以在每次动态添加内容时调用插件,但是由于这很快就会变得混乱,我宁愿避免它,并将其直接集成到插件中。
我开始尝试这个:
$(document).on('DOMNodeInserted', function (e) {
if (e.target.classname === 'JS_postShrinker') {
$(e.target).shrinker(options);
}
});
但它不起作用
更新
请忽略 DOMNodeInserted,我只是在尝试。人们一般如何制作插件?我有同样的问题:
【问题讨论】:
-
如果它有多个类,您可能更喜欢
$(e.target).is('.JS_postShrinker')或$(e.target).hasClass('JS_postShrinker') -
有没有办法获取被调用的函数类?例如,当我使用 $('.greatClassName').shrinker() 调用插件时。在插件中,我可以获得“greatClassName”吗?这将使它更加干燥...谢谢。
-
我当然不希望
$('.greatClassName').shrinker()在插入时修改它们。这感觉本质上是错误的。我更喜欢更通用的$('.greatClassName').andFuture().shrinker()或$('.greatClassName').on('create', function() { $(this).shrinker(); })。这是一个单独的插件的工作,而不是你的收缩器插件。
标签: javascript jquery jquery-plugins dom-events