我已经编写了这个jQuery插件,但它在Opera中不起作用(我使用的是11.51)。它在所有其他浏览器中运行良好,甚至IE7,所以这真让我难过。
非常感谢任何帮助,谢谢。
(function($) {
$.fn.toggleBox = function(options) {
var opts = $.extend({}, $.fn.toggleBox.defaults, options);
return this.each(function() {
var $this = $(this);
var target;
$this.click(function(ev) {
ev.preventDefault();
$(target).stop(1,1).slideToggle(opts.speed, 'swing', function() {
$(target).animate({'opacity': 1});
});
}).hover(
function(){
$(target).stop(1,1).animate({'opacity': 0.4});
},
function(){
$(target).stop(1,1).animate({'opacity': 1});
}
)
.each(function(){
$(this).css('cursor', 'pointer');
target = $(this).attr('data-toggler');
target = $('[data-toggle-content=' + target + ']');
if ( $(this).attr('data-toggler-state') == 'open') {
$(target).show();
} else {
$(target).hide();
}
});
});
};
// Default settings for the plugin
$.fn.toggleBox.defaults = {
speed: 500
};
})(jQuery);
$('[data-toggler]').toggleBox();
// end toggler
以下是用于切换器的html标记及其内容:
<div data-toggler="togglerID"> Click to toggle content</div>
<div data-toggle-content="togglerID"> Toggler content </div>
===========编辑===========
那么数字......一旦我发布问题,我就明白了。
我需要更改调用插件在domReady运行的最后一行:
jQuery(function ($) { $('[data-toggler]').toggleBox(); });
现在在Opera中正常工作。
答案 0 :(得分:0)
我猜您遇到了made me break the BBC iPlayer的错误,即Opera中的动态插入脚本在添加脚本之后无法“看到”内容? (除非你使用jQuery的$(document).ready()
或类似的)。