我可以在不重复所有代码的情况下拖动并保存到多个Cookie吗?
$(function() {
$('.demo').draggable({
cursor: "move"
,
stop: function(event, ui) {
$.cookie('demox', $(this).css('left'));
$.cookie('demoy', $(this).css('top'));
}
})
.resizable({
aspectRatio: true,
})
})
$(function() {
if ($.cookie('demox') != null) {
$('.demo').css('left', $.cookie('demox'));
}
if ($.cookie('demoy') != null) {
$('.demo').css('top', $.cookie('demoy'));
}
})
答案 0 :(得分:0)
你可以这样做:
为每个元素使用特定ID是一个选项吗?有了这个,您可以将相同的处理程序附加到这些对象,并在调用处理程序时检查它,方法是选中this
By Handler我的意思是
function handler(event, ui)
{
$.cookie('demox_'+this.id, $(this).css('left'));
$.cookie('demoy_'+this.id, $(this).css('top'));
}
你可以通过写
来附加它$('.demo').draggable({
cursor: "move",
stop: handler
})
当然,你必须给你的“.demo” - 元素一个ID。
我希望这对你有用:)
P.S。:稍后您可以使用以下内容:
$(function() {
$('[id*="demoID_"]').forEach(function(element)
{
if ($.cookie('demox_'+element.id) != null) {
element.css('left', $.cookie('demox_'+element.id));
}
if ($.cookie('demoy_'+element.id) != null) {
element.css('top', $.cookie('demoy_'+element.id));
}
});
});
我希望我在那里没有拼写错误:)
在这种情况下,你的元素应该有这样的ID:demoID_n,然后cookie将存储在demox_demoID_0,demox_demoID_1等等