我正在使用一些现有的javascript代码,它接受LI并使其可以输入到输入字段。我想为此添加一个额外的约束,并通过创建自己的事件处理程序来强制执行此操作,并在不满足约束时调用event.stopImmediatePropagation()。 这个现有的javascript看起来像这样:
$input.droppable({
accept: accept,
activeClass: 'droppable_active',
hoverClass: 'droppable_hover',
// tolerance: 'touch',
drop: function(e, ui)
{
// do some stuff;
}
并通过以下调用在我的代码中启动:
$('form').dmFrontForm();
这是一个自定义jQuery UI,用于设置该事件处理程序。
在我打电话之前,我设置了自己的处理程序:
$('input').('drop', function(e, ui) {
if (constraintIsNotMet) {
e.stopImmediatePropagation();
}
});
我通过添加alert语句验证了事件处理程序被调用的顺序(实际上无论我把这些代码行放在什么顺序,我的处理程序总是首先响应,这对我来说有点可疑),但无论如何很难我尝试,我无法让第一个处理程序退出。
答案 0 :(得分:1)
我知道这不能直接回答你为何不停止传播的问题,但为什么不使用内置的 accept 方法?
http://docs.jquery.com/UI/Droppable#option-accept
用法示例
$('.selector').droppable('option', 'accept', function(){...});
该函数应返回false以取消drop ..