【问题标题】:Jquery UI Draggable PHP-Jquery ConversionJquery UI Draggable PHP-Jquery 转换
【发布时间】:2017-06-28 01:15:48
【问题描述】:

我有这个 PHP/Jquery/JqueryUI 循环脚本,它使一系列元素可以按 id 拖动并且工作正常:-

<?php
  $phpid=1;
  while($phpid < 10){
    <script>
      $(function(){$('#<?php echo $phpid ?>').draggable()});
    </script>
  $phpid++;
  }
?>

但是我只需要将它从 PHP 更改为 Javascript/Jquery/JqueryIU 脚本。第一个想法是:-

<script>
  var scriptid=1;
  while (scriptid < 10){
    $(function(){$('#scriptid').draggable()});
  scriptid++;
</script>

但这不起作用,因为scriptid 在引号内,所以我尝试:-

$(function(){$('#'+scriptid).draggable()});

这有效,但仅适用于最后一个元素。就像它正在执行循环计数 scripted 最多 10 然后执行该功能。我可以:-

$(function(){$('#'+1).draggable()});
$(function(){$('#'+2).draggable()});
$(function(){$('#'+3).draggable()});
.
.
$(function(){$('#'+10).draggable()});

这很好用,但我需要它在一个循环中。我知道$(function(){ ..... }) 在执行之前等待页面加载,但将其删除只会产生语法错误。

我认为这有一个简单、整洁的解决方案(可能使用.eachthis),但现在对我来说已经浪费了时间。有什么想法谢谢?

【问题讨论】:

  • 您知道 ID 不应该以数字字符开头,对吧?

标签: javascript php jquery jquery-ui draggable


【解决方案1】:

如果你为每个你想被拖动的元素分配一个类, 你应该能够在所有元素上运行它:

$(function(){$('.drag').draggable()});

【讨论】:

    【解决方案2】:

    问题是您创建的所有函数都引用了变量scriptid。当每个函数运行时,它会返回函数运行时scriptid 的值(这将比循环的限制值大一)。

    也许你可以试试这个。你可以谷歌let

    for(let scriptid = 0; i < 10; ++i){
      $(function(){$('#'+scriptid).draggable()});
    }
    

    【讨论】:

    • 好的,感谢他们激发我尝试这个的那些答案:- $(function(){$('*:not(body)').draggable()});。现在这在这种情况下有效,因为我正在选择每个元素,但是我稍后在需要使用循环的地方有其他代码。
    【解决方案3】:

    这就是我最终得到的结果:-

      <script>
        var scriptid=1;
        $(function(){
          while (scriptid < 10){
            $('#'+scriptid).draggable();
          scriptid++;
        }});
      </script>
    

    我已将这个新循环放入函数中,并且此代码现在位于我的另一个主循环之前。

    我相信发生的事情是 $(function(){ ... } 在页面加载后执行,这是在 scriptid 变量已经计数到最大值之后,因此只会使最终元素可拖动。有人可能会证实这一点。

    非常感谢 Patrick 和 hab55 以及其他看过的人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-24
      • 1970-01-01
      • 2017-10-29
      • 2021-02-10
      • 2012-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多