Javascript 。单击内部停止:函数(事件、ui)运行X次(其中X是项目数),而不是仅运行一次

Javascript 。单击内部停止:函数(事件、ui)运行X次(其中X是项目数),而不是仅运行一次,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,下面的代码(希望)是我最初问题的一个最小化测试用例。我正在尝试设置一个系统,您可以从左侧菜单中拖动列表项(可拖动项),然后将它们放到右侧的框中。一旦删除它们,您应该能够单击“可拖动项”文本并展开它们的字段集 但是,问题是,一旦您删除了项目并单击以展开它们(假设您有3个项目),第一个会给您3个警报框,第二个会给您2个,最后一个只会给您1个。换句话说,从顶部,它将为您提供x个警报框(其中x是项目数) 看看代码,我真的不明白为什么会发生这种情况,除了在stop:中包含.click stuff似乎是相关

下面的代码(希望)是我最初问题的一个最小化测试用例。我正在尝试设置一个系统,您可以从左侧菜单中拖动列表项(可拖动项),然后将它们放到右侧的框中。一旦删除它们,您应该能够单击“可拖动项”文本并展开它们的字段集

但是,问题是,一旦您删除了项目并单击以展开它们(假设您有3个项目),第一个会给您3个警报框,第二个会给您2个,最后一个只会给您1个。换句话说,从顶部,它将为您提供x个警报框(其中x是项目数)

看看代码,我真的不明白为什么会发生这种情况,除了在stop:中包含.click stuff似乎是相关的之外,考虑到上的示例工作正常这一事实

(顺便说一句:警报框中的内容应该是您单击的项目的ID。)

有什么想法吗



测试用例
正文{填充:50px;字体系列:Arial;字体大小:.9em}
#列,#数据{float:left}
#列{宽度:13%}
ul,ol{填充:0;边框:0}
li{列表样式:无}
.droptarget{填充:10px;边框:1px实心#999;高度:10px;宽度:350px;右边距:1.2%}
.ui可拖动拖动.ui可排序辅助程序{背景:#f90;宽度:100px;显示:块}
函数hidealElements(){
var元素=$('.dtContent');
var elementsLength=elements.length
对于(var j=0;j
  • 可拖动项目

    • 问题可能在这里:

      $("span").click(function () { alert($(this).attr('id')); });
      
      这将查找文档中的每个跨度,并提醒其id。请尝试改用
      ui
      对象:

      ui.item.click(function() {
          alert(this.id);
      });
      
      ui.item.click(function() {
          alert(this.id);
      });