jquery插件制作 提示框插件實(shí)現(xiàn)代碼
更新時(shí)間:2012年08月17日 15:38:13 作者:
今天我們介紹的是提示框插件tooltip的制作,其中還會(huì)介紹到自定義選擇器插件的開發(fā)
我們首先來介紹自定義選擇器的開發(fā),他的代碼結(jié)構(gòu)如下:
(function ($) {
$.expr[':'].customselector = function (object,index,properties,list) {
//code
};
})(jQuery);
調(diào)用時(shí)候的寫法:
$(a:customselector) 現(xiàn)在我們先解釋下函數(shù)中所使用到的各個(gè)參數(shù)。
object:當(dāng)前dom元素的引用,而不是jquery對(duì)象。需要強(qiáng)調(diào)的一點(diǎn),dom元素和jquery對(duì)象完全不是一回事,a標(biāo)簽代表的是dom元素,$('a')代表的是jquery對(duì)象,他本身是個(gè)js對(duì)象。不清楚的朋友情google相關(guān)知識(shí)。
index:下標(biāo)為0的數(shù)組索引。
properties:選擇器元數(shù)據(jù)數(shù)組。
list:dom元素?cái)?shù)組。
這些參數(shù)中,第一個(gè)參數(shù)是必須的,其他幾個(gè)參數(shù)是可選的。
選擇器函數(shù)通過bool值確定是否包含當(dāng)前元素,true包含,false不包含。
這里我們實(shí)現(xiàn)一個(gè)a標(biāo)簽的選擇器,只選擇指向外部鏈接的a標(biāo)簽,代碼如下:
(function ($) {
$.expr[':'].external = function (object) {
if ($(object).is('a')) {
return object.hostname != location.hostname;
}
};
})(jQuery);
現(xiàn)在我們開始實(shí)現(xiàn)提示框插件的開發(fā),開發(fā)過程就不多講了,主要是代碼實(shí)現(xiàn),里面有備注說明。
(function ($) {//更新坐標(biāo)位置
$.fn.updatePosition = function (event) {
return this.each(function () {
$(this).css({
left: event.pageX + 20,
top: event.pageY + 5
});
});
}
//提示框插件,將顯示a標(biāo)簽title屬性的內(nèi)容
$.fn.tooltip = function () {
return this.each(function () {
//獲取當(dāng)前對(duì)象
var self = $(this);
//獲取title屬性值
var title = self.attr('title');
//判斷當(dāng)前對(duì)象是否是a標(biāo)簽,title屬性有無內(nèi)容
if (self.is('a') && title != '') {
self.removeAttr('title')
.hover(function (event) {
//鼠標(biāo)在目標(biāo)對(duì)象上
$('<div id="tooltip"></div>').appendTo('body')
.text(title)
.hide()
.updatePosition(event)
.fadeIn(400);
}, function () {
//鼠標(biāo)移出
$('#tooltip').remove();
}).mousemove(function (event) {
//鼠標(biāo)移動(dòng)
$('#tooltip').updatePosition(event);
});
}
});
};
})(jQuery);
希望本片文章對(duì)你有用,想看完整效果的朋友可以去下demo,下載地址:jQuery.plugin.tooltip
復(fù)制代碼 代碼如下:
(function ($) {
$.expr[':'].customselector = function (object,index,properties,list) {
//code
};
})(jQuery);
調(diào)用時(shí)候的寫法:
$(a:customselector) 現(xiàn)在我們先解釋下函數(shù)中所使用到的各個(gè)參數(shù)。
object:當(dāng)前dom元素的引用,而不是jquery對(duì)象。需要強(qiáng)調(diào)的一點(diǎn),dom元素和jquery對(duì)象完全不是一回事,a標(biāo)簽代表的是dom元素,$('a')代表的是jquery對(duì)象,他本身是個(gè)js對(duì)象。不清楚的朋友情google相關(guān)知識(shí)。
index:下標(biāo)為0的數(shù)組索引。
properties:選擇器元數(shù)據(jù)數(shù)組。
list:dom元素?cái)?shù)組。
這些參數(shù)中,第一個(gè)參數(shù)是必須的,其他幾個(gè)參數(shù)是可選的。
選擇器函數(shù)通過bool值確定是否包含當(dāng)前元素,true包含,false不包含。
這里我們實(shí)現(xiàn)一個(gè)a標(biāo)簽的選擇器,只選擇指向外部鏈接的a標(biāo)簽,代碼如下:
復(fù)制代碼 代碼如下:
(function ($) {
$.expr[':'].external = function (object) {
if ($(object).is('a')) {
return object.hostname != location.hostname;
}
};
})(jQuery);
現(xiàn)在我們開始實(shí)現(xiàn)提示框插件的開發(fā),開發(fā)過程就不多講了,主要是代碼實(shí)現(xiàn),里面有備注說明。
復(fù)制代碼 代碼如下:
(function ($) {//更新坐標(biāo)位置
$.fn.updatePosition = function (event) {
return this.each(function () {
$(this).css({
left: event.pageX + 20,
top: event.pageY + 5
});
});
}
//提示框插件,將顯示a標(biāo)簽title屬性的內(nèi)容
$.fn.tooltip = function () {
return this.each(function () {
//獲取當(dāng)前對(duì)象
var self = $(this);
//獲取title屬性值
var title = self.attr('title');
//判斷當(dāng)前對(duì)象是否是a標(biāo)簽,title屬性有無內(nèi)容
if (self.is('a') && title != '') {
self.removeAttr('title')
.hover(function (event) {
//鼠標(biāo)在目標(biāo)對(duì)象上
$('<div id="tooltip"></div>').appendTo('body')
.text(title)
.hide()
.updatePosition(event)
.fadeIn(400);
}, function () {
//鼠標(biāo)移出
$('#tooltip').remove();
}).mousemove(function (event) {
//鼠標(biāo)移動(dòng)
$('#tooltip').updatePosition(event);
});
}
});
};
})(jQuery);
希望本片文章對(duì)你有用,想看完整效果的朋友可以去下demo,下載地址:jQuery.plugin.tooltip
您可能感興趣的文章:
- jQuery帶箭頭提示框tooltips插件集錦
- 編寫自己的jQuery提示框(Tip)插件
- jquery SweetAlert插件實(shí)現(xiàn)響應(yīng)式提示框
- 屬于你的jQuery提示框(Tip)插件
- jquery插件珍藏(圖片局部放大/信息提示框)
- 基于jQuery Tipso插件實(shí)現(xiàn)消息提示框特效
- jQuery消息提示框插件Tipso
- jQuery懸停文字提示框插件jquery.tooltipster.js用法示例【附demo源碼下載】
- Colortip基于jquery的信息提示框插件在IE6下面的顯示問題修正方法
- jQuery提示框插件SweetAlert用法分析
相關(guān)文章
JS+CSS實(shí)現(xiàn)圖片預(yù)加載與背景圖上中下切圖
這篇文章介紹了JS+CSS實(shí)現(xiàn)圖片預(yù)加載與背景圖上中下切圖的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06jQuery form插件之formDdata參數(shù)校驗(yàn)表單及驗(yàn)證后提交
Form Plugin API 里提供了很多有用的方法可以讓你輕松的處理表單里的數(shù)據(jù)和表單的提交過程,通過本文給大家介紹jQuery form插件之formDdata參數(shù)校驗(yàn)表單及驗(yàn)證后提交的相關(guān)知識(shí),感興趣的朋友一起學(xué)習(xí)吧2016-01-01使用jQuery模板來展現(xiàn)json數(shù)據(jù)的代碼
通常我們?cè)谑褂胊jax的時(shí)候,都避免不了和json這種輕巧的數(shù)據(jù)格式打交道??墒峭謩?dòng)的去解析json,構(gòu)建HTML,比較麻煩?,F(xiàn)在有了這個(gè)插件,就能像Extjs那樣使用模板解析json了。2010-10-10JQuery學(xué)習(xí)筆錄 簡(jiǎn)單的JQuery
尺寸小、使用簡(jiǎn)單方便(Write Less, Do More,吃得少干得多,而且目前許多大公司都在支持JQuery,例如微軟,微軟把JQuery繼承在了vs2010中2012-04-04jQuery獲取Select選擇的Text和Value(詳細(xì)匯總)
Select選擇的Text和Value在使用中可能都需要獲取到它們的值,以至搜集用戶的需求,本文整理了一些常用而實(shí)用的操作技巧,感興趣的朋友可以了解下,就當(dāng)鞏固自己的知識(shí)了,希望本文對(duì)你有所幫助2013-01-01IE中的File域無法清空使用jQuery重設(shè)File域
IE中的File域無法清空,可能你看到的是已經(jīng)沒有值了,其實(shí)它還是存在的,下面有個(gè)不錯(cuò)示例,大家可以參考下2014-04-04jQuery中each()、find()和filter()等節(jié)點(diǎn)操作方法詳解(推薦)
這篇文章主要介紹了jQuery中each()、find()和filter()等節(jié)點(diǎn)操作方法的相關(guān)資料,非常不錯(cuò)具有參考價(jià)值,需要的朋友可以參考下2016-05-05