zoukankan      html  css  js  c++  java
  • 优化后的光标插件

    $.fn.extend({
      position:function( value ){
        var ele = this[0],
          textarea=(ele.tagName.toLocaleLowerCase()==="textarea"),
          input=(ele.tagName.toLocaleLowerCase()==="input");
        if(!(ele&&(textarea||input))) return undefined;
        if($.browser.msie){
          var rng,rng2,len;
          rng=document.selection.createRange();
          rng2=rng.duplicate();
          rng2.moveStart("character",-ele.value.length);
          len=rng2.text.length

          if( value === undefined ){
            return len;
          }else if(typeof value === "number" ){
            if(value<len){
              rng.moveStart('character',value-len);
              rng.collapse(true);
            }else{
              rng.moveEnd('character',value-len);
              rng.collapse(false);
            }
            rng.select();
          }
      }else{
        if( value === undefined ){
          return ele.selectionStart;
        }else if(typeof value === "number" ){
          ele.selectionEnd = value;
          ele.selectionStart = value;
         }
      }
    }
    });

    近期遇到获取和设置光标位置的问题,查阅相关资料,发现这个插件(http://www.oschina.net/code/snippet_4873_3395),但是有兼容问题(这个插件在只有点击输入框时是有效的),我的需求是点击一个按钮设置光标位置,这时这个插件在IE下就不行了。再次仔细琢磨javascript高级程序设计 范围 和 表单脚本  两章。发现作者的写法也欠妥,现将优化后的代码分享于大家

    还是感谢原作者 http://my.oschina.net/huateng

    //IE文本元素失去焦点 后无法取到光标位置,得在click事件记住光标位置

  • 相关阅读:
    bzoj3670 [Noi2014]动物园
    bzoj2882 工艺
    bzoj3097 Hash Killer I
    bzoj3729 Gty的游戏
    【BZOJ4555】[TJOI&HEOI2016]求和 斯特林数+NTT
    【bzoj4869】[Shoi2017]相逢是问候 线段树+扩展欧拉定理
    【BZOJ1853】[Scoi2010]幸运数字 容斥原理+搜索
    【BZOJ2839】集合计数 容斥原理+组合数
    【BZOJ3622】已经没什么好害怕的了 容斥原理+dp
    【BZOJ3589】动态树 树链剖分+线段树
  • 原文地址:https://www.cnblogs.com/chengzhenping/p/3517896.html
Copyright © 2011-2022 走看看