برطرف کردن مشکل یک کد

این تاپیک 3 پاسخ و 3 مشارکت کننده دارد . آخرین آپدیت توسط :  طاها دریس ،‏ 4 سال و 10 ماه پیش .

١٨٢٧ visibility
نویسنده پست
شنبه ، ۴ آذر ۱۳۹۱     ۳:۳۶ ب.ظ #


حسین

Subscriber
70 پست60 تاپیک

می خواتم این کد رو توری دستکاری کنید که فقط تگ هایی که کلاس tooltip هست رو پوشش بده

(function($){
$.fn.colorTip = function(settings){

var defaultSettings = {
color : 'blue',
timeout : 500
}

var supportedColors = ['red','green','blue','white','yellow','black'];

/* Combining the default settings object with the supplied one */
settings = $.extend(defaultSettings,settings);

/*
* Looping through all the elements and returning them afterwards.
* This will add chainability to the plugin.
*/

return this.each(function(){

var elem = $();

// If the title attribute is empty, continue with the next element
if(!elem.attr('title')) return true;

// Creating new eventScheduler and Tip objects for this element.
// (See the class definition at the bottom).

var scheduleEvent = new eventScheduler();
var tip = new Tip(elem.attr('title'));

// Adding the tooltip markup to the element and
// applying a special class:

elem.append(tip.generate()).addClass('colorTipContainer');

// Checking to see whether a supported color has been
// set as a classname on the element.

var hasClass = false;
for(var i=0;i<supportedColors.length;i++)
{
if(elem.hasClass(supportedColors[i])){
hasClass = true;
break;
}
}

// If it has been set, it will override the default color

if(!hasClass){
elem.addClass(settings.color);
}

// On mouseenter, show the tip, on mouseleave set the
// tip to be hidden in half a second.

elem.hover(function(){

tip.show();

// If the user moves away and hovers over the tip again,
// clear the previously set event:

scheduleEvent.clear();

},function(){

// Schedule event actualy sets a timeout (as you can
// see from the class definition below).

scheduleEvent.set(function(){
tip.hide();
},settings.timeout);

});

// Removing the title attribute, so the regular OS titles are
// not shown along with the tooltips.

elem.removeAttr('title');
});

}
/*
/ Event Scheduler Class Definition
*/

function eventScheduler(){}

eventScheduler.prototype = {
set : function (func,timeout){

// The set method takes a function and a time period (ms) as
// parameters, and sets a timeout

this.timer = setTimeout(func,timeout);
},
clear: function(){

// The clear method clears the timeout

clearTimeout(this.timer);
}
}
/*
/ Tip Class Definition
*/

function Tip(txt){
this.content = txt;
this.shown = false;
}

Tip.prototype = {
generate: function(){

// The generate method returns either a previously generated element
// stored in the tip variable, or generates it and saves it in tip for
// later use, after which returns it.

return this.tip || (this.tip = $('<span class="colorTip">'+this.content+
'<span class="pointyTipShadow"></span><span class="pointyTip"></span></span>'));
},
show: function(){
if(this.shown) return;

// Center the tip and start a fadeIn animation
this.tip.css('margin-left',-this.tip.outerWidth()/2).fadeIn('fast');
this.shown = true;
},
hide: function(){
this.tip.fadeOut();
this.shown = false;
}
}

})(jQuery);

0  تشکر
شنبه ، ۴ آذر ۱۳۹۱     ۴:۱۳ ب.ظ #


لقمان آوند

مدیر ارشد
1704 پست5 تاپیک

سلام

لطفا کل فابل html رو آپلود کنید و آدرس بدید . کدها اینجا بد کپی میشه .

0  تشکر
شنبه ، ۴ آذر ۱۳۹۱     ۴:۵۹ ب.ظ #


حسین

Subscriber
70 پست60 تاپیک

http://www.7learn.com/tutorials/tooltip-with-custom-colors

0  تشکر
شنبه ، ۴ آذر ۱۳۹۱     ۵:۴۴ ب.ظ #


طاها دریس

Authorplus
451 پست5 تاپیک

سلام.

سلام نیازی نیست که به این کدها دست بزنید بلکه در فایل ضمیمه پست بالا، فایلی با نام script.js همچین کدی وجود داره :

$(document).ready(function(){
/* Adding a colortip to any tag with a title attribute: */
$('

').colorTip({color:'yellow'});
});

فقط کافیه که به جای

کلمه .tooltip رو جایگزین کنید تا این افکت فقط روی تگ هایی با کلاس tooltip اعمال بشه به این شکل :

$(document).ready(function(){
/* Adding a colortip to any tag with a title attribute: */
$('.tooltip').colorTip({color:'yellow'});
});

1  تشکر
پست 1 تا 4 (از مجموع 4 پست)

برای پاسخ دادن به این تاپیک باید وارد سایت شوید .