javascript - 如何正确引用 js 文件以便外部 html 可以引用这些文件?

标签 javascript jquery html external

我对 Javascript 还很陌生,所以我会尝试正确地提出问题。我正在使用拖放文件上传 jquery 插件。目前每个文件项的 html 都是从外部引入的,在 js 文件中:

   var tpl = $('
     <li class="working">
       <input type="text" value="0" data-width="20" data-height="20"'+ ' data-fgColor="#8dc53e" data-readOnly="1" data-bgColor="#e9eaed" />
       <a href="#" id="username" data-type="text" data-pk="1" data-url="/post" data-title="Description">Click to add description</a>
       <span></span>
       <a href="" download id="download-file">
         <div class="download"></div>
       </a>
     </li>
   ');

我遇到的问题是我正在尝试添加“单击编辑文本”功能(即 Jeditable),因此我可以向每个文件项添加文件描述。问题是 html 文件本身引用了 Jeditable 工作的 javascript。并且外部化的 html 无法引用这些 js 文件。如何正确引用这些 js 文件以便外部化 html 可以工作?

最佳答案

事情并没有真正加起来,但这正在做我认为你想要它做的事情:https://jsfiddle.net/wqpddqn9/11/

HTML 示例

<div class="pane">
  <form enctype="multipart/form-data" action="vendor/plugins/form/drag-drop-uploader/upload.php" method="post" id="upload">
    <div class="drop-uploader" id="drop"> <span class="drop-text hidden-xs"> Drag &amp; Drop Files <br>
              <small>or</small> </span> <a class="btn btn-primary"> Browse Files </a>
      <input type="file" multiple="" name="upl">
      <ul>
        <!-- The file uploads will be shown here -->
        <li class="working">
          <div>
            <canvas height="20px" width="20"></canvas>
            <input type="text" data-bgcolor="#e9eaed" data-readonly="1" data-fgcolor="#8dc53e" data-height="20" data-width="20" value="0" readonly="readonly" />
          </div>
          <a data-title="Click to Add Description" data-url="/post" data-pk="1" data-type="text" id="description" href="#">Click to Add Description.</a>
          <p>where-is-everyone.png <i>281.86 KB</i></p>
          <span></span>
          <a id="download-file" download="" href="#">
            <div class="download"></div>
          </a>
        </li>
      </ul>
    </div>
    <!-- drop -->
  </form>
</div>

CSS 示例

.working div {
  display: inline-block;
  width: 20px;
  height: 20px;
}

.working input[type='text'] {
  width: 2em;
  height: 1em;
  position: absolute;
  vertical-align: middle;
  margin-top: 6px;
  margin-left: -17px;
  border: 0px none;
  background: transparent none repeat scroll 0% 0%;
  font: bold 14px Arial;
  text-align: center;
  color: rgb(141, 197, 62);
  padding: 0px;
}

JQuery 示例

var tpl = '<input type="text" value="0" data-width="20" data-height="20" data-fgColor="#8dc53e" data-readOnly="1" data-bgColor="#e9eaed" /> <a href="#" id="username" data-type="text" data-pk="1" data-url="/post" data-title="Description">Save</a><span></span><a href="" download id="download-file"><div class="download"></div></a>';

$(document).ready(function() {
  $("#description").click(function() {
    $(this).next("p").after(tpl);
  });
});

根据加载方式,您可能需要将 JQuery 添加到 HTML 末尾或切换到 .on(),如下所示:

$("#description").on('click', function() {

由于您要向该文件添加说明,因此我将文本框附加到同一个列表项 (li) 中的文件名后面。不确定这是否能完全解决问题,因为不清楚您遇到什么或您想要完成什么。请随意发表评论以提供更多详细信息或编辑您的帖子。

关于javascript - 如何正确引用 js 文件以便外部 html 可以引用这些文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34318781/

相关文章:

javascript - 我可以查看计时器是否仍在运行吗?

javascript - 使用 jQuery 检查所有表单输入是否为空

javascript - 为上一个和下一个分配图像源

javascript - 提取多个链接并使用 JQuery 在控制台中单击

javascript - 从js添加图像到slick

html - Flexbox:最后一个导航列表项移动到新行

javascript - 如何在异步等待中手动触发拒绝

javascript - 将所有正则表达式匹配放入一个数组中?

javascript - 梅文本字段。更改图标时,无法点击

javascript - JQuery 调用函数