如何正确引用js文件,以便外部html可以引用这些文件
How can I reference js files properly so external html can reference those files?
我对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>
');
我遇到的问题是,我试图添加"点击编辑文本"功能(即Jedible),这样我就可以为每个文件项添加文件描述。问题是,让Jedit工作的javascript在html文件本身中被引用。外部化的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 & 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
)中。不确定这是否能完全解决问题,因为不清楚你遇到了什么,也不清楚你想完成什么。请随意评论更多细节或编辑您的帖子。
如果您使用的是jQuery,那么在动态添加html元素时,您可能会考虑使用这种方式绑定onClick事件:
$(".element-class").on("click", function(){
//Do your thing with $(this) selector to handle the clicked element
});
这样可以很好地处理动态添加的元素。使用jQuery可能是最简单的解决方案。
相关文章:
- ng-view 中的脚本在从文件引用时不起作用(JQuery 在角度之前加载)
- Javascript没有输入带有.php文件引用的函数
- MRAID文件引用
- 如何仅将js文件引用到特定的脚本块
- 如何在没有元素的情况下获取文件引用对象
- 尽管 js 文件引用在标头中,但未定义函数
- 文件引用从 js 浏览,模拟闪存中的按键解决方法
- 如何从外部 js 文件引用 id
- Javascript-外部库/文件引用
- 如何在asp.net中将javascript文件引用为UserControl
- 从extJavaScript文件引用PHP
- 如何从node_modules到html文件引用lodash 3.10.1
- 使用外部js文件引用td标记
- js文件引用末尾的花括号是什么意思
- 通过grunt任务更新json文件中的文件引用
- 如何在自定义控件中添加.js文件引用
- 从另一个HTML文件引用元素id
- requireJS优化器能用MD5校验和更新静态文件引用和名称吗?
- 在Phonegap中本地文件引用错误
- Ng-grid不能与文件引用的单元格模板一起工作