• 优化后的光标插件


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

  • 相关阅读:
    jquery插件-自定义select
    本地存储组件--兼容IE低版本
    jquery插件-省市联动
    nodejs学习笔记之包、模块实现
    nodejs学习笔记之安装、入门
    javascript的事件处理
    JS中简单的this学习
    你了解JS执行过程吗?
    halcon程序输出成c++程序
    poj3040
  • 原文地址:https://www.cnblogs.com/chengzhenping/p/3517896.html
Copyright © 2020-2023  润新知