对于一个类,我必须使用CSS,HTML 4.01和Javascript与JQuery库创建一个拖放界面;没有插件允许。我认为这样做的最好方法是aler我应该在mousedown然后在mouseup上拖动div的CSS位置
$(document).ready(function(){
$(".draggable").mousedown(Dragging(this));
function Dragging(draggableObject)
{
draggableObject.live("mousemove", function(){draggableObject.css(/*alters the position of the div*/)});
};
});
我的麻烦是draggableObject似乎没有任何CSS属性,我尝试使用其属性调用警报,显然它们是空的。传递对象或其他任何地方我做错了什么?
答案 0 :(得分:1)
为什么不起作用? - 使用Dragging(this)
你会立即调用该函数,而不是在绑定时运行它。此函数作为事件处理程序运行时获得的第一个参数是event object。
它应该是这样的:
$(document).ready(function(){
$(".draggable").mousedown(Dragging);
function Dragging() {
$(this).bind("mousemove", function(){
$(this).css(/*alters the position of the div*/)
});
}
});
在事件处理程序this
已经引用该元素时,不需要传递它。你也可以这样缩短它:
$((function(){
$(".draggable").mousedown(function () {
$(this).mousemove(function(){
$(this).css(/*alters the position of the div*/)
});
});
});
注意我们这里没有使用.live()
,不适用于这种情况(并且不能在没有选择器的情况下使用),您只需要.bind()
直接.mousemove()
快捷方式上面也使用了.bind()
。