我想在鼠标位置打开 JQuery UI 对话框。 我的代码有什么问题?
<script type="text/javascript">
$(document).ready(function () {
var x;
var y;
$(document).mousemove(function (e) {
x = e.pageX;
y = e.pageY;
});
$("#d").dialog({
autoOpen: false,
show: "blind",
hide: "explode",
position: [x, y]
});
$("#c").bind("mouseover", function () {
$("#d").dialog('open'); // open
});
$("#c").bind("mouseleave", function () {
$("#d").dialog('close'); // open
});
});
</script>
最佳答案
在将x
和y
(按值)传递给setup后更新对话框不会产生任何效果,因为此后变量不再相关。您需要直接更新位置选项,如下所示:
$(document).mousemove(function (e) {
$("#d").dialog("option", { position: [e.pageX, e.pageY] });
});
You can test it out here ,或者更优化的版本(因为无论如何你只将其显示在 #c
之上):
$(function () {
$("#d").dialog({
autoOpen: false,
show: "blind",
hide: "explode"
});
$("#c").hover(function () {
$("#d").dialog('open');
}, function () {
$("#d").dialog('close');
}).mousemove(function (e) {
$("#d").dialog("option", { position: [e.pageX+5, e.pageY+5] });
});
});
关于jquery - 在 MousePosition 中打开 JQuery Ui 对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4552503/