快速按钮点击会导致按钮下方的区域选择
Fast button clicks causes selection on field below the button
我试图使用jQuery创建一个滑块,但我有一些新手问题。我做了一个动态插入的按钮和一个动态插入的holder。当我点击这个按钮的速度超过2秒,它会选择按钮后面的holder字段。
我的HTML:
<div id="slidingmenu">
<img src="http://www.hayvansevgisi.net/resimler/wallpaper/ceylan-1.jpg" alt="main1.png" />
<img src="http://www.belgeselizlesek.com/wp-content/uploads/hayvanlar-resimi-4.jpeg" alt="main2.png" />
<img src="http://img03.blogcu.com/v2/images/orj/h/a/y/hayvanlaralemi/hayvanlaralemi_13323141966.jpg" alt="main3.png" />
<img src="http://img03.blogcu.com/v2/images/orj/h/a/y/hayvanlaralemi/hayvanlaralemi_1333958876147.jpg" alt="main4.png" />
<img src="http://www.hayvansevgisi.net/resimler/wallpaper/kus-1503.jpg" alt="main5.png" />
<img src="http://ipekbozbay.files.wordpress.com/2011/04/hayvanlar0034qm5.jpg" alt="main6.png" />
<img src="http://g.mynet.com/i/42/122715-hayvanlar-noel---13.jpg" alt="main7.png" />
<img src="http://elmusavvir.files.wordpress.com/2008/10/koala-doga-canli-agac-resim-hayvanlar.jpg" alt="main8.png" />
<img src="http://www.herseyebedel.com/wp-content/uploads/2012/09/Hayvanlar-Duvar-Ka%C4%9F%C4%B1tlar%C4%B1-25.jpg" alt="main9.png" />
<img src="http://www.hayvanresim.com/wp-content/uploads/Memeli-hayvanlar-7.jpeg" alt="main10.png" />
</div>
Css: #slidingmenu {
width: 380px;
height: 225px;
}
如何使用:
$(document).ready(function () {
$('#slidingmenu').bslider();
});
My Newbie Function:
; (function () {
// Main function
$.fn.bslider = function () {
// Static
var i = 0,
img = "",
here = 0,
result = 0,
butwidth = 45,
interval = 5000,
loc = new Array([]),
mywidth = this.width(),
myheight = this.height(),
count = this.children('img').length,
midwidth = mywidth * count,
urlLeft = 'http://img842.imageshack.us/img842/613/arrowleftr.png',
urlRight = 'http://img7.imageshack.us/img7/4593/arrowrightq.png';
// Cache Images and calgulate locations first
for (i = 0; i < count; i++) {
// Cache Images
var elem = this.children('img').eq(i);
img = img + '<img src="' + elem.attr('src') + '" alt="' + elem.attr('alt') + '" />';
// Calgulate locations
loc[i] = result;
result = result - mywidth;
}
// Clean
this.empty();
// Slider
var obj = this.addClass("bslider").css({
padding: 0,
width: mywidth,
height: myheight,
margin: '20px auto',
borderRadius: '20px 20px 20px 20px'
});
// Append Image container
var mid = $('<div class="mid"></div>').appendTo(obj).css({
padding: 0,
width: mywidth,
height: myheight,
overflow: 'hidden',
position: 'absolute',
display: 'inline-block',
zIndex: 0
});
$('<div class="container">' + img + '</div>').appendTo(mid).css({
padding: 0,
width: midwidth,
height: myheight,
position: 'relative',
display: 'inline-block',
zIndex: -1
}).children('img').css({
width: mywidth,
height: myheight,
float: 'left',
clear: 'none'
});
// Append Left button
$('<div class="left"></div>').insertBefore(mid).css({
float: 'left',
clear: 'none',
display: 'block',
position: 'absolute',
zIndex: 1,
margin: 0,
opacity: 0,
width: butwidth,
height: myheight,
cursor: 'pointer',
background: 'url(' + urlLeft + ') no-repeat left center'
}).hover(function () {
$(this).animate({ opacity: 0.6 }, 'fast');
}).mouseleave(function () {
$(this).animate({ opacity: 0 }, 'fast');
}).click(function (e) {
e.preventDefault();
if (here > 0) { here--; } else { here = count - 1; }
$('.mid .container').animate({ left: loc[here] }, 'fast');
});
// Append Right button
$('<div class="right"></div>').insertBefore(mid).css({
float: 'right',
clear: 'none',
display: 'inline',
position: 'relative',
zIndex: 1,
margin: 0,
opacity: 0,
width: butwidth,
height: myheight,
cursor: 'pointer',
background: 'url(' + urlRight + ') no-repeat right center'
}).hover(function () {
$(this).animate({ opacity: 0.6 }, 'fast');
}).mouseleave(function () {
$(this).animate({ opacity: 0 }, 'fast');
}).click(function (e) {
e.preventDefault();
if (here < count - 1) { here++; } else { here = 0; }
$('.mid .container').animate({ left: loc[here] }, 'fast');
});
// Default behavior
function doIt() { obj.find('.right').click(); }
var int = setInterval(doIt, interval);
// Allow chain
return obj;
};
} ());
如何停止该字段上的选择?
小提琴:http://jsfiddle.net/BerkerYuceer/yTWnN/
你可以使用css停止选择。
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
如何禁用文本选择突出显示使用CSS?
我认为一个"hack"将是清除文档选择使用合适的回调(例如onSlideAfter)。例如:
window.getSelection().removeAllRanges();
编辑-这是一个更跨浏览器的方式:
function clearSelection() {
var sel;
if(document.selection && document.selection.empty) {
document.selection.empty();
} else if(window.getSelection) {
sel = window.getSelection();
if(sel.empty) sel.empty();
if(sel.removeAllRanges) sel.removeAllRanges();
}
}
来源:http://upshots.org/javascript/javascript-cross-browser-clear-selection
相关文章:
- 如何将表格中的文本添加到使用按钮输入的文本区域
- Javascript按钮,在html文本区域中插入一个大黑点(•)
- 如何用按钮控制文本区域滚动
- 按下后退按钮时,如何保持可滚动区域的滚动位置
- PHP使用子窗口中的单选按钮确定从子窗口向父窗口文本区域插入什么
- 清除按钮提交后的文本区域
- 单击TextArea'时,文本区域中的属性名称是什么;s上下箭头按钮
- 单选按钮单击可刷新/更改网站的小区域
- 输入文本区域的清除按钮
- 将所有单选按钮的值打印到文本区域
- 如何在单击“提交”按钮后使文本区域和 IMG 标签只读
- 通过按钮将不同的文本添加到文本区域-不起作用
- 如何检查文本区域中的文本输入并相应地按下提交按钮
- 当按下第二个按钮时如何隐藏按钮,以及当我点击页面的空白区域时如何使其出现
- 如何抓住按下文本区域中的Escape按钮
- 选择离按钮最近的文本区域
- 单个文本区域中的按钮值
- 文本区域中按钮的值
- JQM:如何从 img 精灵中捕获每个按钮(区域)中的点击事件
- 当鼠标不在按钮区域时执行点击按钮