关于jquery插件的this的问题
这个是调用插件的代码,插件是prompt是从网上找的,这个是获取元素的lefttop的函数但是在插件里调用就会报错,提示无法获取lefttop值说是对象未定义我觉得是th...
这个是调用插件的代码,插件是prompt是从网上找的,
这个是获取元素的left top的函数
但是在插件里调用就会报错,提示无法获取left top值说是对象未定义
我觉得是this没有获取对,不知道该怎么解决了
应该在插件里怎么获取this啊 展开
这个是获取元素的left top的函数
但是在插件里调用就会报错,提示无法获取left top值说是对象未定义
我觉得是this没有获取对,不知道该怎么解决了
应该在插件里怎么获取this啊 展开
展开全部
top:getPosi($(this)).top
上边的这句有问题,这里的this可不是插件里怎么获取this的问题,你这里还没有进入的插件内部,这里只是调用插件提供的prompt方法,传进去一个对象作为参数而已,这里的this指向的是你这个表达式所处环境所指向的this。如果你这个$("span")选取对象只有一个的话你可以这么做,修改上边一句为:
top:getPosi($("span")).top
但是$("span")很显然选择的不是一个元素,是一组,所以建议你做如下修改,比如一个span元素想使用这个插件,给它赋一个id为span_1,可以这样写:
$("#span_1").prompt({
top:getPosi($("#span_1")).top,
//your code
});
更多追问追答
追问
你说的很对但是我必须得用一组的,不能用id之类的
追答
这个插件的本意肯定不是让你这么用的,如果你要这么用的会话,也不是不可以。hack它的插件,修改插件中给top赋值的地方,使用getPosi($(this)).top,插件内部this可以指向正确的元素。
插件内部肯定有取你传进去的对象值的地方,修改对应的地方。
展开全部
授之以鱼不如授之以鱼, 所以我决定告诉你遇到这类问题怎么解决, 而不是仅仅告诉你这个问题的答案。
下载Firefox
安装firebug
所使用Firefox打开页面
打开firebug
在firebug中打开脚本选项卡, 找到你需要调试的js
在需要调试的地方加上断点
刷新页面, 程序走到断点的时候查看变量值
可以在firebug右边查看对象所有的属性和方法。
辛苦手打, 希望采纳, 若有疑问, 敬请追问。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
额,亲,他那个this是span元素的。他那个是选取到了。所以那个this是获取到了$("span")这个节点的.如果你要用函数去弄那么你的obj就应该这样写. var offset=$(""+obj+"").offset();大概的意思就是你这个这样写肯定会报错。因为根本没有选取到节点怎么可能计算得出left和top呢。
追问
用你的方法试试了还是不行,我也测试了一下在插件里的$(this)是span,但调用那个获取位置的函数就不对了
追答
就是你函数调用那里不对了。你在改一下,那里没有获取到节点。不过这样说也说不清楚。要得调试才知道问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询