Bug jQuery:触发器可拖动';TypeError:ui未定义';

Bug jQuery:触发器可拖动';TypeError:ui未定义';,jquery,Jquery,我不明白为什么会有这样的错误:TypeError:ui未定义 但是代码非常简单演示代码: 最后一个目标是,当我拖动绿色div时,它会触发拖动红色div JS $('.div_green') .draggable() .bind('drag',function(event,ui){ $('.div_red').trigger('drag'); $('.log').html("drag green - left:" + ui.position.left); }); $('.d

我不明白为什么会有这样的错误:TypeError:ui未定义

但是代码非常简单演示代码:

最后一个目标是,当我拖动绿色div时,它会触发拖动红色div

JS

$('.div_green')
.draggable()
.bind('drag',function(event,ui){

    $('.div_red').trigger('drag');

    $('.log').html("drag green - left:" + ui.position.left);

});

$('.div_red')
    .draggable()
    .bind('drag', function(event,ui){

        $('.log2').html("drag_to_simulate - left:"+ ui.position.left);

    });
.div_green, .pdrag, .div_red{
  position:absolute;
}
.div_green{
  width:40px;
  height:40px;
  top:170px;
  left:300px;
  background-color: green;
}
.pdrag{
  width:120px;
  height:120px;
  top:50px;
  left:90px;
  background-color: #F1F1F1;
}
#pdrag2{
  top:230px;
  width:150px;
}
.div_red{
  width:20px;
  height:20px;
  top:40px;
  left:50px;
  background-color:red;
}
#pdrag2 .div_red{
    left:75px
}
HTML

<div class="div_green"></div>

<div class="pdrag" id="pdrag1">
    <div class="div_red"></div>
</div>

<div class="pdrag" id="pdrag2">
    <div class="div_red"></div>
</div>

<div class="log" style="width:200px;height:20px;"></div>
<div class="log2" style="width:200px;height:20px;"></div>

非常感谢您的帮助。

您得到的是
类型错误:ui未定义
,因为您在.div\u green的拖动绑定中触发了.div\u red的拖动事件

$('.div_red').trigger('drag');
但不提供ui的价值

$('.div_green')
.draggable()
.bind('drag',function(event,ui){

    //* $('.div_red').trigger('drag'); // ui is missing, you should provide the ui here
    * $('.div_red').trigger('drag', ui); // passing ui here

    $('.log').html("drag green - left:" + ui.position.left);

});
Check语句以
*

或者您可以通过
$(this.data('draggable')
您可以更改.div_red的代码,如

$('.div_red')
.draggable()
.bind('drag', function(event,ui){

    if(ui != null)
         $('.log2').html("drag_to_simulate - left:"+ ui.position.left);
    else
        $('.log2').html("drag_to_simulate - left:"+ $(this).data('draggable').position.left);

});

我认为你的标签顺序是错误的

我曾经有过同样的问题

e、 g


非常感谢您的回复。但我已经尝试过:$('.div_red').trigger('drag',[event,ui]);它不起作用:(更新了答案,替换为$('.div_red').trigger('drag',ui');否则如何检索元素的“ui”?类似于:$(this.get('ui'))?是的!非常感谢!我尝试是否可以模拟红色div的拖动!如果您有方法,请提前感谢。是否要通过绿色div拖动来反映红色div的移动?
<script src="<?php echo site_url('js/jquery.mjs.nestedSortable.js'); ?>"></script>
<script src="<?php echo site_url('js/jquery-ui-1.10.4.custom.min.js'); ?>"></script>