【问题标题】:Change value in variable when dragging an item AngularJS JQuery-UI拖动项目AngularJS JQuery-UI时更改变量中的值
【发布时间】:2018-02-18 19:06:50
【问题描述】:

我有三个 div:

<div class="col-sm-4">
  countries and cities
  <ul class="source">
    <li data-value="country">USA</li>
    <li data-value="country">France</li>
    <li class="city" data-value="city">Paris</li>
    <li data-value="city">Rome</li>
  </ul>
</div>


<div id="divCountries" class="col-sm-4">
  Countries
  <ul id="countries">
  </ul>
</div>


<div id="divCities" class="col-sm-4">
  Cities
  <ul id="cities">
    <li class="city" data-value="city">London</li>
  </ul>
</div>

当我将其中一个城市拖到 id="divCities" 的 div 中时,我希望变量变为 true。

你有一个和我想要的很接近的 plunker。

https://plnkr.co/edit/XOVRgqxOyVNPnKawQ8pA?p=preview

如果我在 id="divCities" 的 div 中添加一个先验的 2 个城市,则该变量将为真,然后答案将是正确的。但是,如果我有一个并将第二个拖到那里,它就不会变成真的。

就像现在的 plunker 一样,您可以看到 #divCities 中有一个 class="city" 的城市。 当我将具有 class="city" 的 Paris 拖到 id="divCities" 的 div 中时,具有 class="city" 的元素的计数应该为 2,并且以下变量应该变为 true。

   $scope.exercise = $('#divCities .city').length === 2;

如果是真的,它应该激活一个 ng-show 并显示“正确”。

我错过了什么?有什么帮助吗?

谢谢你:)

【问题讨论】:

标签: javascript jquery angularjs jquery-ui


【解决方案1】:

在您的代码中,只需添加一个在拖动时触发的拖动事件,在该事件处理程序中将您的变量更改为 true

这里是代码

$(".source li").draggable({
  helper: "clone",
  drag:function(){
    console.log('do things here which works on drag');
  }
});

【讨论】:

  • 非常感谢您的帮助 :) 我还想出了另一个解决方案。我移动了 $scope.exercise = $('#divCities .city').length === 2;在函数内部,因此仅在用户单击按钮时才计数
猜你喜欢
  • 1970-01-01
  • 2018-04-14
  • 2018-04-13
  • 2020-11-03
  • 1970-01-01
  • 1970-01-01
  • 2021-11-11
  • 1970-01-01
  • 2017-02-28
相关资源
最近更新 更多