【问题标题】:Jquery .trigger('stop') method for .draggable.draggable 的 Jquery .trigger('stop') 方法
【发布时间】:2011-04-05 04:16:08
【问题描述】:
$('#element').draggable ({
    stop: function () {
        alert ('stopped');
        //do some action here
    }
}).trigger('stop');

什么都没有发生,认为#element 现在是可拖动的,并且事件在拖动完成后会执行。我试过.triggerHandle'dragstop' 作为事件类型,没有运气

【问题讨论】:

    标签: jquery event-handling draggable


    【解决方案1】:

    使用它来触发它:

    .trigger('dragstop')
    

    如果您希望它完全像正常事件一样运行,也可以使用 .bind('dragstop', function) 来附加它,启动选项的行为会略有不同。

    【讨论】:

    • @selytch - 你试过使用 .bind() 吗?回调的处理方式与此处调用的直接绑定略有不同。
    • 谢谢,这行得通!我没有意识到 .bind 的工作方式不同。这有记录吗? (可能是的......)
    • @selytch - 不,根本没有很好的文档记录,只是您在查看 jQuery UI 源代码时注意到的东西,我同意它需要在某个地方更好地注明。
    【解决方案2】:

    我知道这是一个老问题,但现在可以通过使用jQuery simulate plugin 来触发jquery ui 的实际拖动事件而不是dragstart 和dragstop。

    这是我使用的代码,因为我需要访问可调整大小对象的捕捉元素(数据只能在拖动停止时访问)

    $(this).resizable({
        handles: 'e',
        stop: function (e, ui) {
            var resizable = ui.element;             
            resizable.simulate("mousedown", {clientX: e.clientX, clientY: e.clientY});
            resizable.simulate("mousemove", {clientX: e.clientX + 10, clientY: e.clientY + 10});
            resizable.simulate("mouseup", {clientX: e.clientX, clientY: e.clientY});
        }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      相关资源
      最近更新 更多