我有一个可拖动的 div,当您放下它时,它会为您提供其左侧值和顶部值以及它是否包含特定类。
示例:
$( "div" ).draggable({
cursor:'move',
stop: function() {
if ($(this).hasClass('cool')) {
var state = "Class cool exists"
}
var b = $(this);
var bl = b.offset().left;
var bt = b.offset().top;
console.log(" Left:" + bl + " Top:" + bt + " Class:" + state);
}});
和 fiddle :http://jsfiddle.net/sq4XZ/
现在,这只需查找即可,但我想在单独的函数中调用所有这些方法,因为在我的实际脚本中,我必须通过按钮单击、悬停来多次调用该函数,基本上不仅仅是使用你删除了 div。
所以我所做的是:
function cool(){
if ($(this).hasClass('cool')) {
var state = "Class cool exists"
}
var b = $(this);
var bl = b.offset().left;
var bt = b.offset().top;
console.log(" Left:" + bl + " Top:" + bt + " Class:" + state);
}
$( "div" ).draggable({
cursor:'move',
stop: function() {
cool();
}});
这样每次我需要获取这些值时我都会调用cool()函数。
jsFiddle:http://jsfiddle.net/5bQ4d/
现在,如果您是 javascript 专家,您现在应该知道,由于 $(this),这不应该起作用。如果我用 $('div') 替换 $(this) 就可以了。但是当我调用cool()时,它不知道$(this)是哪个。
在我的实际页面中,我有很多这样的 div,所以当我调用 Cool() 时,我必须传递我正在谈论的 div id/名称/类。 那么,我如何将div名称/id/类传递给cool()函数,以便它知道$(this)表示我点击/悬停/放下的div?
谢谢
最佳答案
您可以使用 Function#call :
stop: function() {
cool.call(this);
}});
这将强制 this
与 cool
内的 this
与 stop
内的 this
相同。 http://jsfiddle.net/5bQ4d/1/
关于javascript - 调用javascript函数来获取元素的偏移量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8773632/