【问题标题】:Jquery drag and drop - set clickable region in draggable on dropJquery拖放 - 在拖放时设置可点击区域
【发布时间】:2013-05-08 04:22:05
【问题描述】:

这是在Jquery drag and drop - click event registers on drop发布的后续问题

我正在使用 jquery 拖放。可拖动元素包含左右浮动的两个嵌套 div。左侧 div 包含可拖动的文本,右侧 div 包含一个用于切换工具提示的小“信息”按钮。

在放置时,我希望包含可拖动文本的左侧嵌套 div 是可点击的。下降由以下函数处理:

function handleElementDrop( event, ui ) {
  var slotNumber = $(this).data( 'number' );
  var elementNumber = ui.draggable.data( 'number' );

  if ( slotNumber == elementNumber ) {



ui.draggable.css( 'cursor', 'pointer' );
ui.draggable.parent().find('.element_left').click(function(e) {  
        window.open(ui.draggable.attr('data-link'));
    });

ui.draggable.parent().find('.info').addClass('correct');
    ui.draggable.addClass( 'correct' );
    ui.draggable.draggable( 'disable' );
    $(this).droppable( 'disable' );
    ui.draggable.position( { of: $(this), my: 'left top', at: 'left top' } );
    ui.draggable.draggable( 'option', 'revert', false );
  } 
}

现在哪里有:

ui.draggable.parent().find('.element_left').click(function(e) {  
        window.open(ui.draggable.attr('data-link'));
    });

适用于可点击的左嵌套 div 确定,但我在上一个问题中发布的问题似乎仍然存在。也就是说,在放置时,会触发 click 事件。这种情况很少发生......我在http://jsfiddle.net/5wcaQ/有一个小提琴

【问题讨论】:

    标签: jquery jquery-ui jquery-ui-draggable


    【解决方案1】:

    i 不是.element_left 元素,它是其中的info 元素。

    这种行为也可能与我们在另一个点击事件处理程序中注册一个点击事件处理程序有关。尝试将事件注册到setTimout,看看它是否得到修复

    setTimeout(function(){
        ui.draggable.find('.element_left').click(function(e) { 
            window.open(ui.draggable.attr('data-link')); 
        });
    });
    

    演示:Fiddle

    【讨论】:

    • No...element_right div 包含一个带有类信息的锚标记。那是只用于显示工具提示的信息按钮,而不是打开元素的数据链接...这是通过单击 element_left 来完成的。
    • 是的,我也尝试了 ui.draggable.find('.element_left').click(function(e) { 并且有时仍然会触发点击事件。我在上面尝试了你的小提琴并做了前 3 个插槽,然后是最后一个插槽,事件在最后一个插槽触发...
    • 前两个插槽是 Isolate Virus 和 Extract RNA。我想我总是可以通过在前两个完成后将元素“序列识别和系统发育分析”拖到最后一个插槽来触发它......
    • Arun P Johny 的精彩绝伦! setTimeout 成功了。非常感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多