为什么jQuery工具提示位置没有改变?
我无法获取jQuery ui工具提示来更改位置。现在它出现在鼠标下,所以在使用下拉列表时会出现问题。我改变了偏移量,但没有什么区别。当我在jQuery ui文档中查找它时,它不显示偏移函数。我的代码有什么问题(页面上没有错误) 当前(指针下方): 试过同样的姿势:为什么jQuery工具提示位置没有改变?,jquery,jquery-ui,tooltip,Jquery,Jquery Ui,Tooltip,我无法获取jQuery ui工具提示来更改位置。现在它出现在鼠标下,所以在使用下拉列表时会出现问题。我改变了偏移量,但没有什么区别。当我在jQuery ui文档中查找它时,它不显示偏移函数。我的代码有什么问题(页面上没有错误) 当前(指针下方): 试过同样的姿势: jQuery( document ).tooltip({ offset: [900, 1000], delay: 4000, effect: 'slide' }); 在JQ ui文档中尝试了此操作,但它完全更改了工具提示,但使其成为
jQuery( document ).tooltip({ offset: [900, 1000], delay: 4000, effect: 'slide' });
在JQ ui文档中尝试了此操作,但它完全更改了工具提示,但使其成为一行,并将退出页面:
jQuery( document ).tooltip({ "option", "position", { my: "left+15 center", at: "right center" } );
前两行中指定的选项不是工具提示的有效jQueryUI小部件选项。写这封信:
jQuery( document ).tooltip({ offset: [450, 570], delay: 4000, effect: 'slide' });
相当于根本不通过任何选项:
jQuery( document ).tooltip({});
虽然可以说小部件初始化器不应该默默地吞下无效的选项,但这正是它目前所做的
延迟
和效果
对于工具提示的显示
和隐藏
选项有效,您可能打算在那里使用它们:
jQuery( document ).tooltip({
show: { delay: 4000, effect: 'slide' },
hide: { delay: 4000, effect: 'slide' }
});
至于意外的位置
行为,这可能是因为碰撞
的默认值。如果不指定位置
,r默认为flipfit flip
:
position: {
my: "left top+15",
at: "left bottom",
collision: "flipfit flip"
},
collision = ( options.collision || "flip" ).split( " " )
但是,当您指定一个位置
,但不包括一个定位
,将默认为翻转
:
position: {
my: "left top+15",
at: "left bottom",
collision: "flipfit flip"
},
collision = ( options.collision || "flip" ).split( " " )
jQueryUI充满了这些小怪癖,但它们都有很好的记录。我强烈建议在使用插件之前阅读文档。当您开始修补默认值时(例如,
top+30
而不是left+15
,我无法想象您需要它;或者使用track:true
来确保位置使用鼠标坐标而不是包含元素),您的工具提示行为可能会更加可预测。从这里开始,如果您需要更具体的帮助,请制作一个类似JSFIDLE的东西来演示确切的问题。非常感谢@blgt!你的解释很有帮助!