怎样阻止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,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 推荐几款开源且免费的 .NET MAUI 组件库
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· Trae初体验
2016-02-28 如何划分子网,确定子网和掩码的位数?