我有一排图像,当点击其中一个图像时,它会展开,同时缩小可能会放大的任何其他图像。如果单击放大的图像,它只会收缩。
我收到'缩小未定义'错误消息。提前谢谢。
$.fn.grow = function(size,rate) {
$(this).addClass('click').animate({'height': size}, rate);
}
$.fn.shrink = function(size,rate) {
$('img').removeClass('click').animate({'height': size}, rate);
}
$(document).ready(function() {
$('#gallery img').click(function() {
var $this = $(this);
($this.hasClass('click')) ? $this.shrink('139', '200') : $this.shrink('139', '200').grow('700', '200');
});
});
答案 0 :(得分:2)
我收到了一个不同的例外......
未捕获的TypeError:无法调用未定义的方法'grow'
您正在尝试链接方法(如果您喜欢Crockfordian术语,则使用级联),但您的自定义函数都不会返回jQuery对象。
您需要为return
提供一些内容,通常是this
。在jQuery自定义函数中,this
已经是一个jQuery对象,因此不需要再次包装它。
答案 1 :(得分:0)
如果您使用$ .fn.extend:
$.fn.extend({
shrink: function() {$(this).doSth()},
grow: function() {$(this).doSth()}
});
您将能够将缩小和增长方法应用于任何jQuery包装对象,例如
$('img').shrink();
希望有所帮助