zoukankan      html  css  js  c++  java
  • 怎样阻止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(/
    |[
    
    ]/);    就是这里的关键
    	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>
    

  • 相关阅读:
    Ajax入门
    多线程入门(五)
    多线程入门(四)
    多线程入门(三)
    多线程入门(二)
    多线程入门(一)
    git使用简介
    Windows远程登录到VirtualBox安装的Ubuntu11.10
    阿里面试2(转)
    百度java开发面试题
  • 原文地址:https://www.cnblogs.com/bkylee/p/12380294.html
Copyright © 2011-2022 走看看