【问题标题】:Programmatically calling drag event from function draggable() in jQuery以编程方式从 jQuery 中的函数 draggable() 调用拖动事件
【发布时间】:2014-03-10 08:07:48
【问题描述】:

我在 Javascript 文件中有以下代码。 我需要以编程方式触发拖动事件,但我不能。

$(".toolItems").draggable({
    drag: function (event, ui) {
        alert();
    },
    stop: function (event, ui) {
        removeToolItem(event, ui);
    }
});

我正在尝试以下列方式调用它

function createEvt1() {
    var evt1 = $.Event('drag');
    evt1.clientX = 20;
    evt1.clientY = 30;
    $('.toolItems').trigger("drag",evt1);
}

但它不起作用

【问题讨论】:

  • “我需要务实地触发拖动事件”是什么意思?
  • 表示我需要在没有鼠标帮助的情况下触发它。
  • 您需要让它定期触发,还是在页面加载时触发?
  • 不在页面加载时。我只需要在调用函数时触发它

标签: javascript jquery jquery-ui jquery-events jquery-ui-draggable


【解决方案1】:

试试这样的:

function createEvt1() {
    var evt1 = $.Event('drag');
    evt1.clientX = 20;
    evt1.clientY = 30;
    makeDraggable('.toolItems');
 }

function makeDraggable(selector){
    $(selector).draggable({
        drag: function (event, ui) {
            alert("dragging");
        },
        stop: function (event, ui) {
            alert("stopping");
        }
    });
}

【讨论】:

    【解决方案2】:

    只需创建一个函数并将拖动事件放入其中?

    function enabledrag(){
        $(".toolItems").draggable({
            drag: function (event, ui) {
                alert();
            },
            stop: function (event, ui) {
                removeToolItem(event, ui);
            }
        });
    }
    
    function createEvt1() {
        var evt1 = $.Event('drag');
        evt1.clientX = 20;
        evt1.clientY = 30;
        enabledrag();
    }
    

    【讨论】:

    • 我在 unti 测试中试过这个,但注意到被解雇了
    猜你喜欢
    • 1970-01-01
    • 2012-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-03
    相关资源
    最近更新 更多