怎样阻止input file文件域的change/onchange事件多次重复执行?
方法和原理就是:
- 你本身是无法阻止文件域的onchange事件多次 被 触发的, change(function(){....}); 方法会被多次执行的, 这个是无法改变的!
- 你可以做的是: 当每次 执行change()方法的是, 通过一个标志变量, 来判断change方法是否已经被执行, 当由 标志变量 探测到change方法 已经被执行过, 时就直接让 change方法退出
function upGo(){
$('#upload').click(); // 触发fie域点击事件动作
var changeExed = false; // 这个是标志变量, changeExed: change is executed?
$('#upload').change(function (ev){
if(!changeExed){
changeExed = true; // 执行一次后, changeExed就设置为true, 所以该代码段 只能执行一次, 后面如果发生的 change事件执行的代码 为空! 但是, 第二次及以后的change事件还是 发生 并 是执行了的!
var uf = ev.currentTarget.files[0];
var fname = uf.name;
.......
}; // change 方法结束
/// 要注意 在change方法中, 返回fale 并不能让change代码只执行一次, 只是: return false 阻止浏览器的默认行为 不能???
===========================================================
在js的split方法中, 如何写正则表达式规则的形式?
- 注意的是, js.split 方法中, 正则表达式, 一定要在两边 加上 斜杠 /..../, 其次, 不能在正则表达式上 加 引号! 因为加上引号后, js就认为是字符串, 不是正则表达式了
- 读取的文本内容 中可能有 html标签, 这些标签在 容器中会被hmtl 执行, 所以 要把这些标签进行 转换 成无意义的纯字符.
reader.onload = function(){
content = this.result;
// 在这里处理读取到的文本内容
var arr = content.split(/\r\n|[\n\r]/); 就是这里的关键
var strCont ='';
for(var i=0, j=arr.length; i<j; i++){
strCont += '<span>' + arr[i] + '</span><br>';
}
$('div.uc>p').html(strCont);
$('div.showuc').css('display','block');
};
=====================
js如何删除数组中的某个元素?
- 使用 splice(注意不是 slice 切片函数), splice(start, howmany)是用来删除/替换/添加的函数. 从start索引开始删除howmany个数组元素. splice函数会改变数组本身, 所以,不用返回值接受 ,
arr.splice(arr.length-1,1)
- 使用delete 方法, 但是 该方法把某个元素 只是变成 'undefined'值, 数组的长度也不会改变
- 使用 pop()方法, 该方法删除最后一个元素, 同时返回最后一个元素的值, 这里你不要/丢弃 返回值就好了.
css中的overflow?
-
css的属性 如果是多个单词, 都是用 连字符- 来连接, 不是 pascal方法的大小写驼峰法: 比如: style="max-heigth: 300px;", 不能写成 maxHeight: 300px;
-
overflow的 scroll和 auto区别: 前者不管宽高是否超出都显示 滚动条; 后者是通常不显示滚动条, 只有超出宽高才显示滚动条
==============
元素的hidden隐藏后, 如何显示?
- 要用 removeClass('hidden')来显示出来, 不能用 设置css('display','inline-block')来显示, 因为这时候, hidden类并没有被删除;
- 只有用 display: none隐藏的元素, 才可以用 display: block来显示出来
===============
所谓浏览器的默认行为?就是 在元素上 并没有 显式的 绑定什么事件, 但是却发生的 行为behavior, 比如:
- 点击链接发生的跳转事件/
- 点击 input type=submit元素 发生的表单提交事件/
- 在键盘输入的字符自动添加到text类型的input中, 都是 浏览器的默认行为
<a href="http://www.abc.com">click me to jump</a>
<script>
var aa=document.getElementsByTagName('a')[0];
aa.addEventListener('click', function(e){
e.preventDefault(); // 这样, 点击a不会发生跳转
})
</script>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
2016-02-28 如何划分子网,确定子网和掩码的位数?