jquery - 在 MousePosition 中打开 JQuery Ui 对话框

标签 jquery jquery-ui jquery-ui-dialog

我想在鼠标位置打开 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>

最佳答案

在将xy(按值)传递给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] });
    });
});

You can test that version here .

关于jquery - 在 MousePosition 中打开 JQuery Ui 对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4552503/

相关文章:

javascript - 比较数据选择器中的值

java - 如何动态添加新行到表中的新行中的日期选择器字段?

Jquery 对话框新按钮

打开和关闭时缩放到某个位置的Javascript模态窗口

javascript - 尝试使用 Jquery 将 html 元素值获取到变量

jquery - 禁用动态创建的元素上的链接

javascript - 当元素处于 View 中且未滚动过去时,如何使 jQuery 航点插件触发?

javascript - jQueryUI 自动完成默认文本

jquery 不适用于加载的 html

javascript - 使用 confirm() 表单打开新标签页或窗口