jQuery實(shí)現(xiàn)長(zhǎng)按按鈕觸發(fā)事件的方法
本文實(shí)例講述了jQuery實(shí)現(xiàn)長(zhǎng)按按鈕觸發(fā)事件的方法。分享給大家供大家參考。具體分析如下:
現(xiàn)在手機(jī)端的快速發(fā)展,使許多手機(jī)手勢(shì)需要制作到手機(jī)版的網(wǎng)頁(yè)過(guò)程中
網(wǎng)上有許多長(zhǎng)按按鈕的插件,甚至僅僅是jQuery Mobile都有長(zhǎng)按事件
但是基于種種的兼容性問(wèn)題,
只使用jquery去實(shí)現(xiàn)長(zhǎng)按動(dòng)作,可以在手機(jī)端與電腦端保持極強(qiáng)的兼容性
一、基本目標(biāo)
制作一個(gè)按鈕,實(shí)質(zhì)上一個(gè)100x100px的灰色背景的圖層,長(zhǎng)按達(dá)2s則圖層里的文字從in變成out。如下圖所示:
二、制作過(guò)程
代碼如下:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無(wú)標(biāo)題文檔</title>
<script type="text/javascript" src="js/jquery-1.11.1.js"></script>
</head>
<body>
<div id="mydiv" style="width:100px; height:100px; background:#ddd;">out</div>
</body>
</html>
<script>
/*設(shè)置一個(gè)長(zhǎng)按的計(jì)時(shí)器,如果點(diǎn)擊這個(gè)圖層超過(guò)2秒則觸發(fā),mydiv里面的文字從out變in的動(dòng)作*/
var timeout ;
$("#mydiv").mousedown(function() {
timeout = setTimeout(function() {
$("#mydiv").text("in");
}, 2000);
});
$("#mydiv").mouseup(function() {
clearTimeout(timeout);
$("#mydiv").text("out");
});
$("#mydiv").mouseout(function() {
clearTimeout(timeout);
$("#mydiv").text("out");
});
</script>
實(shí)質(zhì)上,長(zhǎng)按的時(shí)間不應(yīng)該過(guò)長(zhǎng),因?yàn)檫@有可能與手機(jī)系統(tǒng)的部分長(zhǎng)按手勢(shì)產(chǎn)生沖突,但也不宜過(guò)短,因?yàn)殚L(zhǎng)按時(shí)間過(guò)短與點(diǎn)擊沒(méi)有任何區(qū)別,
理論上,判斷長(zhǎng)按結(jié)束,在手機(jī)端上僅設(shè)置mouseup動(dòng)作就可以,
但是,在PC上僅設(shè)置mouseup會(huì)有如下的bug:
在長(zhǎng)按的時(shí)候同時(shí)涂黑圖層上面的文字,再把鼠標(biāo)拖出圖層,則可以躲過(guò)系統(tǒng)mouseup的判定,當(dāng)然,在手機(jī)上無(wú)法實(shí)現(xiàn)這一個(gè)動(dòng)作,如果完全是寫給手機(jī)的網(wǎng)頁(yè),完全可以不管這步,不過(guò)為了更好的兼容性,還是加上mouseout動(dòng)作修正這個(gè)bug。
希望本文所述對(duì)大家的jQuery程序設(shè)計(jì)有所幫助。
- JQuery自動(dòng)觸發(fā)事件的方法
- JQuery文本改變觸發(fā)事件如聚焦事件、失焦事件
- jQuery如何使用自動(dòng)觸發(fā)事件trigger
- jquery 查找select ,并觸發(fā)事件的實(shí)現(xiàn)代碼
- jquery實(shí)現(xiàn)回車鍵觸發(fā)事件(實(shí)例講解)
- jquery實(shí)現(xiàn)按Enter鍵觸發(fā)事件示例
- JQuery觸發(fā)事件例如click
- jquery實(shí)現(xiàn)輸入框?qū)崟r(shí)輸入觸發(fā)事件代碼
- jquery選擇器排除某個(gè)DOM元素的方法(實(shí)例演示)
- jQuery 刪除/替換DOM元素的幾種方式
- jquery獲取并修改觸發(fā)事件的DOM元素示例【基于target 屬性】
相關(guān)文章
jquery地址欄鏈接與a標(biāo)簽鏈接匹配之特效代碼總結(jié)
jquery如何獲取地址欄參數(shù),改變地址欄樣式,接下來(lái),通過(guò)本篇文章給大家分享jquery地址欄鏈接與a標(biāo)簽鏈接匹配之特效代碼總結(jié),需要的朋友可以參考下2015-08-08為開發(fā)者準(zhǔn)備的10款最好的jQuery日歷插件
這篇文章介紹的是 10 款最棒而且又很有用的 jQuery 日歷插件,允許開發(fā)者們把這些漂亮的日歷插件結(jié)合到自己的網(wǎng)站中2014-02-02jQuery 1.0.4 - New Wave Javascript(js源文件)
jQuery 1.0.4 - New Wave Javascript(js源文件)...2007-01-01jQuery3.0中的buildFragment私有函數(shù)詳解
在 jQuery3.0中,buildFragment 是一個(gè)私有函數(shù),用來(lái)構(gòu)建一個(gè)包含子節(jié)點(diǎn) fragment 對(duì)象。下文給大家介紹jQuery3.0中的buildFragment私有函數(shù)詳解,對(duì)jquery3.0 buildfragment相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧2016-08-08分享20款美化網(wǎng)站的 jQuery Lightbox 燈箱插件
這篇文章主要介紹了分享20款美化網(wǎng)站的 jQuery Lightbox 燈箱插件,需要的朋友可以參考下2014-10-10表頭固定(利用jquery實(shí)現(xiàn)原理介紹)
表頭固定應(yīng)該是一個(gè)用得比較多的功能,參考了網(wǎng)上幾個(gè)例子,在幾個(gè)常用瀏覽器下顯示不是很完美2012-11-11簡(jiǎn)短幾句jquery代碼的實(shí)現(xiàn)一個(gè)圖片向上滾動(dòng)切換
短幾句jquery代碼實(shí)現(xiàn)一個(gè)圖片向上滾動(dòng)切換,需要的朋友可以參考下。2011-09-09jQuery實(shí)現(xiàn)頁(yè)碼跳轉(zhuǎn)式動(dòng)態(tài)數(shù)據(jù)分頁(yè)
本片文章教給大家用jQuery實(shí)現(xiàn)頁(yè)碼跳轉(zhuǎn)式動(dòng)態(tài)數(shù)據(jù)分頁(yè),效果非常好而且沒(méi)有頁(yè)面刷新,需要的朋友學(xué)習(xí)下吧。2017-12-12