jquery為元素提供click、bind等方法繫結事件,但假如需要繫結事件的元素過多的話(如$("a")),不管是查詢元素還是逐個繫結事件都比較影響效率;所以jquery還提供了效率更高live方法,以及效率最高的delegate方法,來處理此類問題。
在使用qtip2的時候,也存在繫結tip的效率問題,不但要查詢元素、繫結事件、及為每乙個元素建立tip,比較浪費資源;幸好,qtip2也提供了類似live/delegate的方式來繫結tip;當然,如果嫌qtip2提供的不夠好,那也完全可以用jquery.delegate方法來實現。
以下就這3種方式來實現為多個目標共享乙個tip逐一演示,首先假定頁面存在以下元素:
1
2
3
<
p
id
=
"demo1"
>
a
href
=
""
target
=
"_blank"
title
=
"囧月"
>囧月
這也是官方demo中使用的方法,主要演示為有title屬性的a標記顯示tip:?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// 選擇demo1下有title屬性的a標記
var
elems = $(
'#demo1 a[title]'
)
// 移除title屬性,儲存title到tooltip屬性中
.each(
function
(i) )
.removeattr(
'title'
);
// 建立乙個用於共享的tip
$(
''
).qtip(
,
show: ,
hide: ,
events:
}
}
});
這種方法通過在指定區域建立乙個tip,並跟隨滑鼠指標移動,實時顯示當前指向目標的內容:?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var
settext =
function
(event, api)
};
// 在指定區域建立用於共享的tip
$(
'#demo1'
).qtip(
// tip位置偏移,防止遮住滑鼠指標
},
events:
});
當然,這種方法有乙個缺點,就是無法針對容器內特定的標記進行提示,所以這種方法比較適用於**。
ps:或許是我沒找到方法,反正通過api的show/hide方法,經常會顯示不出來。
這種方法是直接建立乙個tip,然後通過mouseover/mouseout事件來控制tip的顯示隱藏?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// 建立用於共享的tip
var
api = $(
''
).qtip(
}).qtip(
"api"
);
// 監聽事件
$(
"#demo1"
).delegate(
"a"
,
"mouseover mouseout"
,
function
(e)
else
api.hide();
});
以上方法僅僅只是一些嘗試,還有一些不完善的地方,當然相對來說還是官方demo提供的方法完善一些;如果哪位tx有更好的方法,也請提供下。
最後還是提供一下demo。?
jquery提示外掛程式qtip2使用 全面
詳情參考 基本用法 1 只有簡單提示 2 帶標題的 3 設定位置 content position style my 是指三角的位置 at 是在提示在元件的相對位置 top 上 bottom下 left左 right右center中 兩組配合使用 4 設定風格 content position st...
2個小技巧
沉迷業務,無法自拔ing,今天就水一下好了。記錄 2 個小技巧,供以後開發時參考,相信對其他人也有用。一般對資料求最大值我是這麼求的 const max 1,2,3,4,5 reduce accu,curr accu curr accu curr 但是還有更簡單完全不需要考慮相容問題的方法 cons...
使用Vim 10 多個小技巧
vim 是很多開發者的首選編輯器,通過設定正確的命令和快捷方式,它可以幫你更快的完成工作。這篇文章我們為 vim 新手提供一些快捷鍵等方面的小技巧,幫你提公升工作效率。參考 當我最初使用 vim 的時候,我浪費了好多時間來縮排 我不知道通過修改 vim 的 vimrc 配置檔案來實現 縮排 語法高亮...