如果您想了解问题的根本原因,可以使用以下几行(在 supersized3.shutter.js 中找到):
$(vars.tray_button).toggle(function(){
$(vars.thumb_tray).stop().animate({bottom : 0, avoidTransforms : true}, 300 );
if ($(vars.tray_arrow).attr('src')) $(vars.tray_arrow).attr("src", vars.image_path + "button-tray-down.png");
return false;
}, function() {
$(vars.thumb_tray).stop().animate({bottom : -$(vars.thumb_tray).height(), avoidTransforms : true}, 300 );
if ($(vars.tray_arrow).attr('src')) $(vars.tray_arrow).attr("src", vars.image_path + "button-tray-up.png");
return false;
});
它正在尝试使用基于事件的 toggle,但不幸的是,该版本的 toggle 功能自 JQuery 1.8 起已弃用并在 1.9 中删除(您使用的是 1.9)。所以实际发生的是这个切换函数被调用,它只是切换 div 是隐藏还是显示。
您可以选择降级到 JQuery 1.8 或更低版本,或者重写依赖于旧的基于事件的切换功能的插件部分。
希望这可以帮助!
编辑:我已经在下面的代码中重写了插件的上述部分以与 1.9 兼容,请让我知道这是否有效,我还没有测试过:
$(vars.tray_button).on('click',function(){
var self=$(this)
self.data('toggle',!self.data('toggle'))
if(self.data('toggle')) {
$(vars.thumb_tray).stop().animate({bottom : 0, avoidTransforms : true}, 300 );
if ($(vars.tray_arrow).attr('src')) $(vars.tray_arrow).attr("src", vars.image_path + "button-tray-down.png");
} else {
$(vars.thumb_tray).stop().animate({bottom : -$(vars.thumb_tray).height(), avoidTransforms : true}, 300 );
if ($(vars.tray_arrow).attr('src')) $(vars.tray_arrow).attr("src", vars.image_path + "button-tray-up.png");
}
return false;
});