【问题标题】:Dynamically creating droppable div with script also dynamically created使用脚本动态创建可放置 div 也动态创建
【发布时间】:2015-08-03 15:35:55
【问题描述】:

我正在动态创建一个可放置的 div 列表,其中还包含动态的 javascript。 php 看起来像这样:

echo "<li class=\"grayborder txdkgray\"><div id=\"queue".$i."\" style=\"width:300px; height:30px; text-align:center;\">*Drag a file here to run* </div></li>";
echo "<script> $('#queue".$i."').droppable( {hoverClass: 'hovered', drop: handleQueueDrop} ); </script>";

问题是它创建的 div 不起作用,我不能将任何东西放入其中,并且当我这样做时该函数不会运行。这是我回应他们的方式的问题吗?

【问题讨论】:

  • 能不能发个浏览器打开页面后的源码截图?
  • @ElheniMokhles 我不能发布图片(我需要更多的声望)但是通过 jperelli 的编辑,脚本标签就像开发者工具中的普通标签一样工作(带有下拉和突出显示的红色单词跨度>

标签: javascript php html drag-and-drop drag


【解决方案1】:

您需要space here

... id=\"queue".$i."\"style=\"width:300 ...

喜欢这个

... id=\"queue".$i."\" style=\"width:300 ...

此外,您应该在加载事件之后运行您的代码。转换这个

echo "<script> $('#queue".$i."').droppable( {hoverClass: 'hovered', drop: handleQueueDrop} ); </script>";

到这里

echo "<script> $(function(){ $('#queue".$i."').droppable( {hoverClass: 'hovered', drop: handleQueueDrop} ); }) </script>";

【讨论】:

  • 脚本标签现在看起来像开发者工具中的普通脚本标签,它隐藏了文本并让您下拉并突出显示#queue0并悬停在红色但它仍然不运行该功能跨度>
  • 脚本没有像预期的那样将 ui-droppable 类添加到 div 中
  • 你把jquery和jquery-ui需要的脚本放了吗?开发者工具有错误吗?
  • 可放置 div 的代码可以正常工作,所以我假设所有脚本都在那里,并且当它不是动态创建时它可以工作。没有其他错误
  • 确保页面中首先出现 jquery 脚本,然后是 jquery-ui,然后是你的这个 droppable 脚本
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-29
  • 1970-01-01
  • 1970-01-01
  • 2015-01-31
  • 2013-09-29
  • 2014-02-15
相关资源
最近更新 更多