jQuery find/each脚本不工作
jQuery find/each script not working
我一定忽略了一些小事。我只是试图选择DL中的所有DT元素并插入一些HTML并添加单击事件,但它似乎只适用于第一个DT。
下面是我的插件的代码片段:
return this.each(function(){
var questions = $(this).find('dt');
questions.each(function(){
$(this).attr("title","Show answer"); // add screen tip
$(this).wrapInner("<span class='faqToggleQues' />");
$(this).prepend("<span class='faqToggleNumber'>"+numPrefix+(i+1)+numSubfix+"</span>");
});
});
我还在jsFiddle上托管了代码http://jsfiddle.net/mindfriction/u6WYQ/
根据您提供的新链接,我已经更新了代码http://jsfiddle.net/u6WYQ/6/需要使用默认值。numPrefix而不是numPrefix。也可以通过init方法隐藏dd默认值。
$(文档)时函数(){$ (dt) . each(函数(){(美元)。attr("标题"、"显示答案");//添加屏幕提示(美元).wrapInner (" ");(美元).prepend (" + numPrefix + (i + 1) + numSubfix + " ");});});
查看我更新的代码http://jsfiddle.net/u6WYQ/11/
-
在
$.extend
中处理之前声明默认选项$.fn.faqToggle.defaults
-
递增题数为内each (
idx
所指),而非外each (i
所指) -
在
(function($){ ... }(jQuery))
正文中调用自定义jquery方法faqToggle
,而不是在
完整代码
(function($){
$.fn.faqToggle = function(options){
// declare the default options before processing them
$.fn.faqToggle.defaults = {
numPrefix: 'Q',
numSubfix: '.',
showTooltip:'Show answer',
hideTooltip:'Hide Answer'
}
var opts = $.extend({},$.fn.faqToggle.defaults, options);
function onClick(){
if ( $(this).next('dd').is(":hidden") ) { // if the answer is hidden show it
$(this).next('dd').show();
$(this).attr("title","Hide answer"); // update screentip
} else {
$(this).attr("title","Show answer"); // update screentip
$(this).next('dd').hide(); // if the answer is shown hide it
}
}
return this.each(function(i){
var questions = $(this).find('dt');
var answers = $(this).find('dd');
answers.hide(); // hide answers initially
// for incrementing question number, referto inner .each, not the outer
questions.each(function(idx){
$(this).attr("title","Show answer"); // add screen tip
$(this).wrapInner("<span class='faqToggleQues' />");
$(this).prepend("<span class='faqToggleNumber'>"+opts.numPrefix + (idx+1) + opts.numSubfix+"</span>");
$(this).click(onClick);
});
});
};
// apply the custom jquery method in the (function($){ ... }(jQuery))
$('#faqList').faqToggle();
})(jQuery);
相关文章:
- HTML标记在脚本标记中工作
- 使用谷歌应用程序脚本从工作表中获取值并将其显示在文本框中
- 密码输入键脚本在首次使用后无法工作
- prettyPhoto脚本是't工作
- 在pjax完成其工作时加载脚本
- $(document).ready和jQuery(function($)不工作;jQuery已定义,但脚本尚未定义;t进
- 使用几个<脚本>标签不会't工作-只调用一个脚本
- 重新启动jquery脚本后,角度停止工作
- 我的时间倒计时脚本在谷歌浏览器中工作正常,但在其他浏览器中打开时它显示为南楠
- 当源工作表添加了行时,如何编写在一个工作表中添加行的脚本
- Cufon脚本没有'不能在IE9下工作
- java脚本点击事件处理程序不工作
- 更改谷歌工作表中ImportHTML值的脚本
- 为什么这个书签脚本是't在IE工作
- Javascript函数不工作.脚本定位问题
- 谷歌SWIFFY无法在IE9中工作-脚本错误'运行时.js'
- 从控制台中的工作函数转换为工作脚本.(请参阅编辑)
- jQuery最新的库不工作脚本
- window.close()没有't工作-脚本可能只关闭它打开的窗口
- 链接到外部js文件不工作<脚本src="client.js"