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事件记住光标位置

  • 相关阅读:
    圣诞关你鸟事!
    吾属于人民,如何当家作主
    请不要做浮躁的人!
    被鬼压?
    分手后要记得做10件事情
    人生少走弯路的10条忠告
    不要一辈子靠技术生存
    跨浏览器的 inlineblock 实现[CSS]
    MVC Razor的使用
    SQL Server重温——视图、存储过程
  • 原文地址:https://www.cnblogs.com/chengzhenping/p/3517896.html
Copyright © 2011-2022 走看看