jquery插件制作 提示框插件實現(xiàn)代碼
更新時間:2012年08月17日 15:38:13 作者:
今天我們介紹的是提示框插件tooltip的制作,其中還會介紹到自定義選擇器插件的開發(fā)
我們首先來介紹自定義選擇器的開發(fā),他的代碼結(jié)構(gòu)如下:
(function ($) {
$.expr[':'].customselector = function (object,index,properties,list) {
//code
};
})(jQuery);
調(diào)用時候的寫法:
$(a:customselector) 現(xiàn)在我們先解釋下函數(shù)中所使用到的各個參數(shù)。
object:當(dāng)前dom元素的引用,而不是jquery對象。需要強調(diào)的一點,dom元素和jquery對象完全不是一回事,a標(biāo)簽代表的是dom元素,$('a')代表的是jquery對象,他本身是個js對象。不清楚的朋友情google相關(guān)知識。
index:下標(biāo)為0的數(shù)組索引。
properties:選擇器元數(shù)據(jù)數(shù)組。
list:dom元素數(shù)組。
這些參數(shù)中,第一個參數(shù)是必須的,其他幾個參數(shù)是可選的。
選擇器函數(shù)通過bool值確定是否包含當(dāng)前元素,true包含,false不包含。
這里我們實現(xiàn)一個a標(biāo)簽的選擇器,只選擇指向外部鏈接的a標(biāo)簽,代碼如下:
(function ($) {
$.expr[':'].external = function (object) {
if ($(object).is('a')) {
return object.hostname != location.hostname;
}
};
})(jQuery);
現(xiàn)在我們開始實現(xiàn)提示框插件的開發(fā),開發(fā)過程就不多講了,主要是代碼實現(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)前對象
var self = $(this);
//獲取title屬性值
var title = self.attr('title');
//判斷當(dāng)前對象是否是a標(biāo)簽,title屬性有無內(nèi)容
if (self.is('a') && title != '') {
self.removeAttr('title')
.hover(function (event) {
//鼠標(biāo)在目標(biāo)對象上
$('<div id="tooltip"></div>').appendTo('body')
.text(title)
.hide()
.updatePosition(event)
.fadeIn(400);
}, function () {
//鼠標(biāo)移出
$('#tooltip').remove();
}).mousemove(function (event) {
//鼠標(biāo)移動
$('#tooltip').updatePosition(event);
});
}
});
};
})(jQuery);
希望本片文章對你有用,想看完整效果的朋友可以去下demo,下載地址:jQuery.plugin.tooltip
復(fù)制代碼 代碼如下:
(function ($) {
$.expr[':'].customselector = function (object,index,properties,list) {
//code
};
})(jQuery);
調(diào)用時候的寫法:
$(a:customselector) 現(xiàn)在我們先解釋下函數(shù)中所使用到的各個參數(shù)。
object:當(dāng)前dom元素的引用,而不是jquery對象。需要強調(diào)的一點,dom元素和jquery對象完全不是一回事,a標(biāo)簽代表的是dom元素,$('a')代表的是jquery對象,他本身是個js對象。不清楚的朋友情google相關(guān)知識。
index:下標(biāo)為0的數(shù)組索引。
properties:選擇器元數(shù)據(jù)數(shù)組。
list:dom元素數(shù)組。
這些參數(shù)中,第一個參數(shù)是必須的,其他幾個參數(shù)是可選的。
選擇器函數(shù)通過bool值確定是否包含當(dāng)前元素,true包含,false不包含。
這里我們實現(xiàn)一個a標(biāo)簽的選擇器,只選擇指向外部鏈接的a標(biāo)簽,代碼如下:
復(fù)制代碼 代碼如下:
(function ($) {
$.expr[':'].external = function (object) {
if ($(object).is('a')) {
return object.hostname != location.hostname;
}
};
})(jQuery);
現(xiàn)在我們開始實現(xiàn)提示框插件的開發(fā),開發(fā)過程就不多講了,主要是代碼實現(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)前對象
var self = $(this);
//獲取title屬性值
var title = self.attr('title');
//判斷當(dāng)前對象是否是a標(biāo)簽,title屬性有無內(nèi)容
if (self.is('a') && title != '') {
self.removeAttr('title')
.hover(function (event) {
//鼠標(biāo)在目標(biāo)對象上
$('<div id="tooltip"></div>').appendTo('body')
.text(title)
.hide()
.updatePosition(event)
.fadeIn(400);
}, function () {
//鼠標(biāo)移出
$('#tooltip').remove();
}).mousemove(function (event) {
//鼠標(biāo)移動
$('#tooltip').updatePosition(event);
});
}
});
};
})(jQuery);
希望本片文章對你有用,想看完整效果的朋友可以去下demo,下載地址:jQuery.plugin.tooltip
您可能感興趣的文章:
相關(guān)文章
jQuery實現(xiàn)DIV響應(yīng)鼠標(biāo)滑過由下向上展開效果示例【測試可用】
這篇文章主要介紹了jQuery實現(xiàn)DIV響應(yīng)鼠標(biāo)滑過由下向上展開效果,涉及jQuery基于事件響應(yīng)結(jié)合stop與animate方法控制頁面元素屬性動態(tài)變換相關(guān)操作技巧,需要的朋友可以參考下2018-04-04
ajax jquery實現(xiàn)頁面某一個div的刷新效果
這篇文章主要給大家介紹了關(guān)于ajax jquery實現(xiàn)頁面某一個div的刷新效果的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03

