jQuery Drag 仅适用于 Chrome
我不想使用 jQuery UI,所以我尝试自己制作一个 jQuery 拖动脚本。
这基本上是我的水平拖动代码:
var down = false;
$('#itemToMove').mousedown(function(e){
down = true;
left = event.pageX - $(this).offset().left;
});
$(document).mouseup(function(){
down = false;
});
$(document).mousemove(function(e){
if(down){
var X = event.pageX - left;
$('#itemToMove').css({
left: X
});
}
});
我在 Chrome 中工作得很好,但在其他浏览器中却不行(尝试过 KHTML、Trident 和 Gecko)。 有人能告诉我为什么吗?
I don't want to use the jQuery UI, so I tried to make a jQuery Drag Script on my own.
This is basically my code for horizontal Dragging:
var down = false;
$('#itemToMove').mousedown(function(e){
down = true;
left = event.pageX - $(this).offset().left;
});
$(document).mouseup(function(){
down = false;
});
$(document).mousemove(function(e){
if(down){
var X = event.pageX - left;
$('#itemToMove').css({
left: X
});
}
});
I works just awesome in Chrome, but doesn't in other browsers (tried KHTML, Trident and Gecko).
Can someone tell me why?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我非常确定,如果您在 mousedown 事件处理程序中放置一个警报(“”),它永远不会触发。这是因为当您尝试将事件处理程序绑定到对象的 mousedown 事件时,该对象(您的 div)尚不存在。尝试将整个代码块包装在
$(document).ready(function() 中
{
// 这里是你的代码
});
像这样的东西:
希望它有帮助:]
添加:另外,请确保浏览此文档:http://api.jquery.com/ready" jquery.com/ready,特别是以下部分:
I am pretty damn sure that if you put an alert("") inside your mousedown event handler, it will never fire. That's because by the time you try to bind the event handler to the object's mousedown event, the object (your div) does not exist yet. Try wrapping your entire code block in
$(document).ready(function()
{
// Your code here
});
Something like this:
Hope it helps :]
Added: Also, make sure you skim through this document: http://api.jquery.com/ready, especially the following part: