123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226 |
- var _TipIDCounter = 0;
- function Tip(ele, msg, position, autoClose, withObject) {
- this.ElementID = ele;
- this.withObject = withObject;
- if (!position) {
- position = "top";
- }
- this.Position = position;
-
- this.Element = null;
- if(typeof ele == "object"){
- this.Element =ele.get(0);
- }
- else{
- if(ele.substr(0,1)!="#" && ele.substr(0,1)!="." && ele.substr(0,1)!=":"){
- this.Element = $("#" + this.ElementID).get(0);
- }
- else{
- this.Element= $(this.ElementID).get(0);
- }
- }
- this.Message = msg;
- if (!autoClose) {
- autoClose = true;
- }
- this.AutoClose = autoClose;
- this.X = 0;
- this.Y = 0;
- }
- Tip.AutoCloseTips = [];
- Tip.Tips = [];
- Tip.prototype.init = function() {
- }
- Tip.prototype.show = function() {
-
- var el = null;
-
- if(typeof this.ElementID=="object"){
- el = this.ElementID;
- }
- else{
- if(this.ElementID.substr(0,1)!="#" && this.ElementID.substr(0,1)!="." && this.ElementID.substr(0,1)!=":"){
- el = $("#" + this.ElementID);
- }
- else{
- el = $(this.ElementID);
- }
- }
-
-
- if (this.withObject != null && this.withObject != undefined) {
- if(typeof this.withObject=="object"){
- el = this.withObject;
- }
- else{
- if(this.withObject.substr(0,1)!="#" && this.withObject.substr(0,1)!="." && this.withObject.substr(0,1)!=":"){
- el = $("#" + this.withObject);
- }
- else{
- el = $(this.withObject);
- }
- }
- }
- if( el.length<=0){
- alert( this.ElementID + " is null" );
- return;
- }
- var arr = [];
- var divid = "tooltipbox_" + _TipIDCounter++;
- arr.push("<div id='" + divid + "' class='tooltipbox'><span>");
- arr.push(this.Message);
- arr.push("</span></div>");
- this.Html = arr.join('');
- $(this.Html).appendTo($(document.body));
-
- var dl = $("#" + divid);
- var p = el.offset();
-
- var fixLeft = parseInt(el.css("margin-left")) || 0;
- var fixTop = parseInt(el.css("margin-top")) || 0;
-
- var fixTopPadding = parseInt(el.css("padding-top")) || 0;
- var fixLeftPadding = parseInt(el.css("padding-left")) || 0;
- var fixRightPadding = parseInt(el.css("padding-right")) || 0;
- var x = 0;
- var y = 0;
-
- // $("#" + this.ElementID).css("background","#f9fcde");
- switch (this.Position) {
- case "left":
- x = p.left +el.width();
- y = p.top + (el.height() - dl.height()) / 2 + 3;
- break;
- case "right":
- x = p.left + el.width() + fixLeftPadding+fixLeft;
- y = p.top + (el.height() - dl.height()) / 2;
-
- break;
- case "top":
- x = p.left;
- y = p.top - el.height() - fixTopPadding - fixTop - 5;
-
- break;
- case "bottom":
- x = p.left;
- y = p.top + el.height() + fixTopPadding + fixTop + 5;
- y += 10;
- break;
- }
- dl.css({
- left: x+"px" ,
- top: y+"px"
- });
- this.Div =dl;
- if (this.AutoClose) {
- Tip.AutoCloseTips.push(this);
- }
- Tip.Tips.push(this);
- }
- Tip.prototype.close = function() {
- this.Div.remove();
- }
- Tip.show = function(ele, msg, pos, autoClose, withObject) {
- var tip = new Tip(ele, msg, pos, autoClose, withObject);
- tip.show();
- if (!tip.AutoClose) {
- if (!tip.Element._Tips) {
- tip.Element._Tips = [];
- }
- tip.Element._Tips.push(tip);
- }
- return tip;
- }
- Tip.focus = function(ele, msg, pos, autoClose, withObject) {
-
- if(typeof ele=="object"){
- ele.focus();
- }
- else{
- if(ele.substr(0,1)!="#" && ele.substr(0,1)!="." && ele.substr(0,1)!=":"){
- $("#" + ele).focus();
- }
- else{
- $(ele).focus();
- }
- }
-
- return Tip.show(ele, msg, pos, autoClose, withObject);
- }
- Tip.select = function(ele, msg, pos, autoClose, withObject) {
- if(typeof ele=="object"){
- ele.focus();
- ele.select();
- }
- else if(ele.substr(0,1)!="#" && ele.substr(0,1)!="." && ele.substr(0,1)!=":"){
- $("#" + ele).focus();
- $("#" + ele).select();
- }
- else{
- $(ele).focus();
- $(ele).select();
- }
- return Tip.show(ele, msg, pos, autoClose, withObject);
- }
- Tip.getTipCount = function(ele) {
- ele = $(ele);
- if (!ele._Tips) {
- return 0;
- }
- return ele._Tips.length;
- }
- Tip.closeAll = function() {
- var arr = Tip.Tips;
- for (var i = arr.length; i > 0; i--) {
- arr[i - 1].close();
- arr.splice(i - 1, 1)
- }
- };
- Tip.close = function(ele) {//将与ele有关的Tip都关闭掉
- ele = document.getElementById(ele);
- if (ele._Tips) {
- for (var i = 0; i < ele._Tips.length; i++) {
- if (ele._Tips[i]) {
- ele._Tips[i].close();
- }
- }
- ele._Tips = [];
- }
- }
- $(document).mousedown(function() {
- var arr = Tip.AutoCloseTips;
- for (var i = arr.length; i > 0; i--) {
- // $("#" + arr[i-1].ElementID).css("background","#fff");
- arr[i - 1].close();
- arr.splice(i - 1, 1)
- }
- });
- $(document).keydown(function() {
- var arr = Tip.AutoCloseTips;
- for (var i = arr.length; i > 0; i--) {
- // $("#" + arr[i-1].ElementID).css("background","#fff");
- arr[i - 1].close();
- arr.splice(i - 1, 1)
- }
- });
|