现在我知道你们在读标题时的想法。你可能会想到我在谈论jQuery UI可拖动。但我实际上是在谈论我为社区制作的插件。我正在尝试为我的插件创建一个目标。它的工作原理如你所见:
你可以看到它运作良好。
首先,让我解释一下假设会发生什么。那么我想要的是,如果元素被丢弃在目标中...... targ.on()会被启动。这是我的插件中的onTarget
功能。这个和offTarget
(targ.off())在我的插件中不起作用。
这就是我的插件中的内容:
var targ = {
on: o.target.onTarget,
off: o.target.offTarget
};
然后我的插件设置代码是:
$(document).ready(function() {
$('#drag').jDrag({
revert: false,
revertDuration: 500,
ghostDrop: false,
ghostRevert: false,
ghostOpacity: '0.50',
instantGhost: false,
activeClass: false,
handle: false,
grid: false,
cookies: false,
cookieExdate: 365,
radialDrag: false,
radius: 100,
circularOutline: false,
strictMovement: false,
distance: 0,
not: false,
containment: false,
target: {
init: '#container',
lock: false,
onTarget: function() {
$(this).hide();
},
offTarget: function() {}
},
onPickUp: function() {},
onDrop: function() {}
});
});
我不明白为什么它不起作用。
如果你想查看它,这是我的实际插件:
答案 0 :(得分:2)
尝试:
onTarget: function() {
console.log(this);
$(this).hide();
},
你会看到“this”不是指元素,而是指持有函数的对象。
将元素作为参数传递:
if (locker === false) {
if (statement) {
targ.on(this);
lock = false;
} else {
targ.off();
lock = false;
}
}