【发布时间】:2013-05-15 06:02:58
【问题描述】:
我正在使用一些 jQuery 让用户操作图像。用户应该能够双击图像来选择它,然后单击下面出现的一些按钮来调整图像大小或翻转图像。
图像像这样传递给 image_editor 函数:
$('section img').dblclick(function () {
item_editor(this);
});
那么item_editor函数如下所示:
var item_editor = function (activeItem) {
var $activeItem = $(activeItem);
// Show border around current activeItem
$('.activeItem').removeClass('activeItem');
$activeItem.addClass('activeItem');
// Flip the selected image when the button's clicked
$('div#flip').click(function () {
$activeItem.toggleClass('flipped');
});
}
我在这里把它放到一个 jsFiddle 中:http://jsfiddle.net/sarahg/6sE5F/30/
我在这里遇到的问题是“翻转”按钮在您第一次使用时会起作用,但是如果您选择不同的图像并尝试翻转该图像,则已经翻转的所有内容都会再次翻转。 activeItem 变量不是我想象的那样。
我做了一些搜索,我认为这与 JavaScript 闭包有关,但我无法充分理解它们以使我的代码正常工作。
【问题讨论】:
标签: javascript jquery closures scope