关于jQuery插件jTip的修改,代码基本上没变,只进行了简单的修改,我个人认为这样更合适!

这个jTip插件,我个人认为,有点不太好用,于是个人进行了简单的修改
修改内容如下:
1.由于jtip是将提示信息,用异步html代码方式返回的,所有的内容都写在了href上,我个人认为这样herf很臃肿。
同时,如果href里有?会出错。【也就是说,我有时候真是要写成这个样子<a href="**.aspx?id=**"></a>】报错是不允许的啊,所以就干脆把href里面的异步功能都放在了ref里。
[注意这里用的是rel,起初是想用title的,但是title也是提示,两个提示很难看,于是改成了rel]
2.样式问题,jTip的鼠标提示,把<a>的cursor改成了help,就是指针后面跟着一个?,这个有时候就根本不需要,所以我自己加了一个样式,只有使用
<a href="http://www.yahoo.com" rel="yahoo.htm?width=175" name="Before You Click..." id="yahooCopy" class="jTip">Go To Yahoo</a>使用这种,就是普通的链接变手型。
<a href="#" rel="thanks.htm?width=175" name="感谢JTip的开发者" id="kkai" class="jTip kkai"><font color="#CC6633" style="font-weight:bold;">not a link</font></a>使用这种,就是cuosor;help形状。
  1. /*
  2.  * JTip
  3.  * By Cody Lindley (http://www.codylindley.com)
  4.  * 修改:kkai  2008-8-20 
  5.  * 建议你有机会去研究下原来的jtip
  6.  * Under an Attribution, Share Alike License
  7.  * JTip is built on top of the very light weight jquery library.
  8.  */
  9. /*修改内容:
  10. 由于jtip是将提示信息,用异步html代码方式返回的,所有的内容都写在了href上,我个人认为这样herf很臃肿。
  11. 同时,如果href里有?会出错。
  12. 但是,我有时候真是要写成这个样子<a href="**.aspx?id=**"></a>,报错是不允许的啊,所以就干脆把href里面的异步功能都放在了ref里。
  13. [注意这里用的是rel,起初是想用title的,但是title也是提示,两个提示很难看,于是改成了rel]
  14. */
  15. //页面加载完成时候,调用JT_inint
  16. $(document).ready(JT_init);
  17. function JT_init(){
  18.            $("a.jTip")
  19.            .hover(function(){JT_show(this.rel,this.id,this.name)},function(){$('#JT').remove()})
  20.            //.click(function(){return false});  /*这里被kkai注释掉,因为我需要href连接提交*/   
  21. }
  22. function JT_show(rel,linkId,title){
  23.     if(title == false)title=" ";
  24.     var de = document.documentElement;
  25.     var w = self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
  26.     var hasArea = w - getAbsoluteLeft(linkId);
  27.     var clickElementy = getAbsoluteTop(linkId) - 3; //set y position
  28.     
  29.     var queryString = rel.replace(/^[^/?]+/??/,'');
  30.     var params = parseQuery( queryString );
  31.     if(params['width'] === undefined){params['width'] = 250};
  32.     //if(params['link'] !== undefined){
  33.         /*这里被kkai注释掉,我不需要在rel里添加,我不需要onclick window.location*/
  34.     //$('#' + linkId).bind('click',function(){window.location = params['link']});
  35.     //$('#' + linkId).css('cursor','pointer');
  36.     //}
  37.     
  38.     if(hasArea>((params['width']*1)+75)){
  39.         $("body").append("<div id='JT' style='width:"+params['width']*1+"px'><div id='JT_arrow_left'></div><div id='JT_close_left'>"+title+"</div><div id='JT_copy'><div class='JT_loader'><div></div></div>");//right side
  40.         var arrowOffset = getElementWidth(linkId) + 11;
  41.         var clickElementx = getAbsoluteLeft(linkId) + arrowOffset; //set x position
  42.     }else{
  43.         $("body").append("<div id='JT' style='width:"+params['width']*1+"px'><div id='JT_arrow_right' style='left:"+((params['width']*1)+1)+"px'></div><div id='JT_close_right'>"+title+"</div><div id='JT_copy'><div class='JT_loader'><div></div></div>");//left side
  44.         var clickElementx = getAbsoluteLeft(linkId) - ((params['width']*1) + 15); //set x position
  45.     }
  46.     
  47.     $('#JT').css({left: clickElementx+"px", top: clickElementy+"px"});
  48.     $('#JT').show();
  49.     $('#JT_copy').load(rel);
  50. }
  51. function getElementWidth(objectId) {
  52.     x = document.getElementById(objectId);
  53.     return x.offsetWidth;
  54. }
  55. function getAbsoluteLeft(objectId) {
  56.     // Get an object left position from the upper left viewport corner
  57.     o = document.getElementById(objectId)
  58.     oLeft = o.offsetLeft            // Get left position from the parent object
  59.     while(o.offsetParent!=null) {   // Parse the parent hierarchy up to the document element
  60.         oParent = o.offsetParent    // Get parent object reference
  61.         oLeft += oParent.offsetLeft // Add parent left position
  62.         o = oParent
  63.     }
  64.     return oLeft
  65. }
  66. function getAbsoluteTop(objectId) {
  67.     // Get an object top position from the upper left viewport corner
  68.     o = document.getElementById(objectId)
  69.     oTop = o.offsetTop            // Get top position from the parent object
  70.     while(o.offsetParent!=null) { // Parse the parent hierarchy up to the document element
  71.         oParent = o.offsetParent  // Get parent object reference
  72.         oTop += oParent.offsetTop // Add parent top position
  73.         o = oParent
  74.     }
  75.     return oTop
  76. }
  77. function parseQuery ( query ) {
  78.    var Params = new Object ();
  79.    if ( ! query ) return Params; // return empty object
  80.    var Pairs = query.split(/[;&]/);
  81.    for ( var i = 0; i < Pairs.length; i++ ) {
  82.       var KeyVal = Pairs[i].split('=');
  83.       if ( ! KeyVal || KeyVal.length != 2 ) continue;
  84.       var key = unescape( KeyVal[0] );
  85.       var val = unescape( KeyVal[1] );
  86.       val = val.replace(//+/g, ' ');
  87.       Params[key] = val;
  88.    }
  89.    return Params;
  90. }
  91. function blockEvents(evt) {
  92.               if(evt.target){
  93.               evt.preventDefault();
  94.               }else{
  95.               evt.returnValue = false;
  96.               }
  97. }


代码下载地址
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值