为什么jQuery Tooltip的位置没有改变?

时间:2014-10-13 12:47:46

标签: jquery jquery-ui tooltip

我无法通过jQuery-ui工具提示来改变位置。现在它出现在鼠标下面,因此在使用下拉列表时会出现问题。我已经改变了偏移,但没有任何区别。当我在jQuery ui docs中查找它时,它没有显示偏移函数。我的代码出了什么问题(页面上没有错误)

当前(指针下方):

jQuery( document ).tooltip({ offset: [450, 570], delay: 4000, effect: 'slide' });

试过这个,同样的立场:

jQuery( document ).tooltip({ offset: [900, 1000], delay: 4000, effect: 'slide' });

从JQ ui Docs尝试了这个但是它完全改变了工具提示,但是将它全部改为一行并将离开页面:

jQuery( document ).tooltip({ "option", "position", { my: "left+15 center", at: "right center" } );

1 个答案:

答案 0 :(得分:1)

您在前两行中指定的选项不是工具提示的有效jQueryUI小部件选项。写这个:

jQuery( document ).tooltip({ offset: [450, 570], delay: 4000, effect: 'slide' });

相当于根本不传递任何选项:

jQuery( document ).tooltip({});

虽然可以说小部件初始化者不应该默默地吞下无效的选项,但这正是它所做的。


delayeffect对工具提示的showhide选项有效,您可能打算在那里使用它们:

jQuery( document ).tooltip({
    show: { delay: 4000, effect: 'slide' },
    hide: { delay: 4000, effect: 'slide' }
});

对于意外的position行为,这可能是因为collision的默认值。如果您未指定positionthe widget's initialise r默认为flipfit flip

    position: {
        my: "left top+15",
        at: "left bottom",
        collision: "flipfit flip"
    },

但是,当您指定position但未包含colision时,the position plugin会将其默认为flip

collision = ( options.collision || "flip" ).split( " " )

jQueryUI充满了这些小问题,但它们都有很好的记录。我强烈建议您在使用插件之前阅读文档。当你开始修改默认值时,你的工具提示的行为可能会更加可预测(例如top+30而不是我无法想象的left+15;或者使用{{1}确保位置使用鼠标坐标而不是包含元素。从那里,如果你需要更具体的帮助,请做一些像jsfiddle这样的确切问题。