- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我知道很多人都会问有关插件和回调的问题(我已经阅读了很多内容 - 这就是我到目前为止的方式),所以请耐心等待。我尝试了一个非常简单的隐藏/显示 Accordion 类型插件来解决常见问题,并成功地让它完成我想要的事情。然而,由于我仍在学习,我不太确定有些事情是如何运作的。阅读 this question 后,我能够向插件添加回调和其他一些。
我的问题是:这段代码是否正确,是否有更好的方法来实现这个回调?这是 working sample和下面的代码。感谢您抽出时间。
( function($) {
$.fn.simpleFAQ = function( options, callback ) {
// define default options
var defaults = {
textExpand : "Expand all",
textCollapse : "Collapse all",
displayAll : false,
toggleSpeed : 250
};
var options = $.extend( defaults, options );
// callback
if( typeof callback != "function" ) { callback = function(){} }
this.each( function () {
obj = $(this);
// insert FAQ expand all/collapes all text before FAQ
var txt = '<span class="simple_jfaqText"><a href="javascript:;" rel="jfaq_expand">' + options.textExpand + '</a> / <a href="javascript:;" rel="jfaq_collapse">' + options.textCollapse + '</a></span>';
$( txt ).insertBefore( obj );
// add class to desired FAQ element
obj.addClass( 'simple_jfaq' );
// show/hide faq answers according to displayAll option
( options.displayAll == false ) ? ddDisplay = 'none' : ddDisplay = 'block';
obj.children( 'dd' ).css( 'display', ddDisplay );
// add classes according to <dd> state (hidden/visible)
obj.children( 'dd:visible' ).prev( 'dt' ).addClass( 'expanded' );
obj.children( 'dd:hidden' ).prev( 'dt' ).addClass( 'collapsed' );
obj.children( 'dt' )
.click( function() {
// show/hide all answers (dd elements) on click
$(this).nextUntil( 'dt' ).slideToggle( options.toggleSpeed, callback );
// dt class change on click
$(this).toggleClass( 'collapsed' ).toggleClass( 'expanded' ); })
.hover( function() { $(this).toggleClass( 'hover' ); }, function(){ $(this).toggleClass( 'hover' ); });
});
// Expand All
obj.prev( 'span' ).children( 'a[rel=jfaq_expand]' ).click( function() {
// show all answers
$(this).parent( 'span' ).next( '.simple_jfaq' ).children( 'dd:hidden' ).slideToggle( options.toggleSpeed );
setTimeout( callback, options.toggleSpeed )
// change classes
$(this).parent( 'span' ).next( '.simple_jfaq' ).children( 'dt' ).removeClass( 'collapsed' ).addClass( 'expanded' );
});
// Collapse all
obj.prev( 'span' ).children( 'a[rel=jfaq_collapse]' ).click( function() {
// hide all answers
$(this).parent( 'span' ).next( '.simple_jfaq' ).children( 'dd:visible' ).slideToggle( options.toggleSpeed );
setTimeout( callback, options.toggleSpeed );
// change classes
$(this).parent( 'span' ).next( '.simple_jfaq' ).children( 'dt' ).removeClass( 'expanded' ).addClass( 'collapsed' );
});
};
})( jQuery );
最佳答案
我建议使用内置的 jQuery event system为了这。您可以在任何节点上触发事件,然后 FAQ 代码的用户可以绑定(bind)到该节点上的该事件。您甚至可以将数据传递给绑定(bind)函数。
当然,我真正的建议是使用 my plug-in同名。 :)
关于javascript - jQuery 自定义插件回调 - 新问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4267048/
所以我的问题是我希望我的文本显示在页面的死 Angular 。我一直在尝试手动对齐它,但这似乎是一种糟糕的做法。我想要它,这样即使网页被调整为更小或者用户使用的是更小的屏幕,无序列表也会显示在屏幕的死
所以基本上,我有这段代码,它选择一个下拉菜单选项,然后按下它。我需要它按第一个选项,然后按第二个选项。 var x = document.getElementById("product-select"
我编写了我的第一个 C 程序。它去除 C 注释 ('//')。我将一个字符串传递给函数 strip_comments,创建一个与参数字符串大小相同的新字符串,然后我逐个复制一个字符,忽略注释。 这是代
我在运行下面代码中提到的清理名称实用程序时收到运行时错误 7 错误。我使用的是 512 GB 硬盘、8 GB RAM、I7 处理器,所以不应该是内存问题,但问题仍然会出现。 我的工作簿有 123188
我知道很多人都会问有关插件和回调的问题(我已经阅读了很多内容 - 这就是我到目前为止的方式),所以请耐心等待。我尝试了一个非常简单的隐藏/显示 Accordion 类型插件来解决常见问题,并成功地让它
请原谅我,如果之前已经介绍过,我搜索无济于事。 我有一个脚本可以查看目录以找到其中的文件。有一个条件行只查找具有特定扩展名的文件: if(strtolower(substr($file, -3)) =
使用链接列表扩展哈希表时会出现一些错误和警告。我想确保以下代码是正确的(扩展函数)并找出引发这些警告/错误的原因 编辑:感谢@nos,他注意到我的原型(prototype)缺少我提到的警告+错误。不幸
我已经搜索了网络,并且共识似乎是将$ {SDK_DIR}/usr/lib/libxml2添加到“Header Search Paths”中。我已经完成了此操作,并且可以在项目检查器中看到它扩展了,以更
很抱歉新手。 我想在 LinearLayout(垂直)中创建一个 View 元素列表。我创建了一个名为“category_list.xml”的 TableLayout 的 xml 布局
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and t
全新的 Xcode 版本,除了删除大量添加空函数调用的地方外,还引入了一个有趣的问题,用一段简单的代码绘制了一条大地路径: func drawPolyline(from startLocation:
我之前的问题可以在这里找到(只是想向这个最有帮助的社区保证我不会试图垃圾邮件问题): Evaluating a postfix Expression in C 我的问题涉及评估后缀表达式。假设我有一个
嘿嘿 我的声纳kotlin插件已启动并正在运行。我的RuleDefinitions放置在“规则”页面上,但是在分析某些Kotlin项目时,不会保存发现的问题。 我的传感器问题添加代码如下所示: pri
这是我在这里发表的第一篇文章。我是初学者。我正在开发一个 Spring Boot 应用程序。尝试了很多解决方案后,问题都没有得到解决。请帮忙(如果缺少任何代码片段,我会发送它。): 控制台: Erro
我是一名优秀的程序员,十分优秀!