jQuery-用于切换内容的自定义插件
jQuery - Custom plugin for toggling content
我刚刚做了我的第一个jQuery插件,它隐藏了太长的内容。
你可以在http://jsfiddle.net/denislexic/bT4dH/6/.
当你检查并点击"…"时,你会注意到第一个切换了三次,第二个切换了两次,第三个是正确的(所以只有一次)。
我不知道它为什么这么做。我试过e.preventDefault()
、stopPropagation()
等。似乎什么都不起作用。
以下是似乎有问题的代码:
$("." + opts.clickZoneClass).on("click", function (e) {
_debugger(1);
var element = $(this).parent('div').children('div.status');
// I know you can use is(':visible'), but it doesn't work in Internet Explorer 8 somehow...
if (element.hasClass('open')) {
_debugger(2);
element.animate({
height:element.attr('data-toggle')
}, 'fast');
//$(this).html();
element.removeClass('open');
} else {
_debugger(3);
element.animate({
height:element.attr('data-height')
}, 'fast');
element.addClass('open');
}
return false;
});
这是因为您在$.each循环中执行上面的代码。如果你拿出你的绑定代码,只运行一次你的插件就可以了。
我只是把它拔出来,移到文档就绪功能中,以说明。。。
http://jsfiddle.net/bT4dH/10/
我猜在迭代元素时,click事件绑定了不止一次。为了克服这个问题,只需在点击前添加取消绑定方法,即
$("." + opts.clickZoneClass).unbind().on("click", function (e) {
// existing stuff
});
这将解决您的问题。
相关文章:
- jQuery-用于切换内容的自定义插件
- 如何将自定义插件添加到KeystoneJS管理UI中
- "包装器”;TinyMce自定义插件
- 如何使用jQuery扩展方法为元素或类选择器创建自定义插件
- 如何在我的自定义插件中绑定调整大小事件
- Ckeditor 自定义插件 - 带有单选按钮的对话框
- 通过Chrome自定义插件在浏览器当前页面中选择元素的问题
- Joomla 中的 jquery 自定义插件不起作用
- 无法识别 JQuery 自定义插件函数
- 无法调用自定义插件
- 自定义插件,用于在 src 更改时移动图像而不移动图像
- jQuery 自定义插件无法按照文档的建议工作
- Phonegap 3.0 自定义插件
- Phonegap/Cordova 2.9自定义插件创建.任何工作示例
- Piwik自定义插件开发/JQPlot(特别是:Piwik 1.7.1中的seriesPicker)
- jQuery自定义插件-为多个实例设置私有选项
- 创建我的自定义插件并在本地注册
- CKeditor自定义插件顺序
- mpld3中自定义插件中的选择--制作滑块
- 如何以编程方式触发自定义插件状态