gpt4 book ai didi

javascript - Jquery slider 附加鼠标事件

转载 作者:行者123 更新时间:2023-11-27 23:56:48 25 4
gpt4 key购买 nike

我正在使用jquery slider ,它在chrome浏览器中工作正常,但是当我在firefox中运行相同的代码时,鼠标会附加一个事件,当我移动无论向左或向右然后它会自动滑动滚动。

所以我希望它的功能像 Chrome 一样。任何人 1 请帮助我如何停止 firefox

的悬停效果

我正在使用 jquery-min.jsjquery-ui.js 的 samve 版本,即 1.11.1jquery-ui.css 版本 1.9.1

非常感谢任何人的想法或评论

我在下面粘贴完整的代码并设置 fiddle link

<html>
<head>

<title>slider problem</title>

<link href="https://code.jquery.com/ui/1.9.1/themes/base/jquery-ui.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.11.1/jquery-ui.js"></script>

</head>
<body>

<div id="" class="span12 sliderSpecific ui-slider ui-slider-horizontal ui-widget ui-widget-content ui-corner-all" aria-disabled="false"> <a class="ui-slider-handle ui-state-default ui-corner-all" href="#" tabindex="-1" style="left: 0%;"></a></div>
<script type="text/javascript">

$(document).ready(function(){

$('.sliderSpecific').slider({
animate: true,
range: "min",
step: parseInt(50),
slide: function( event, ui ) {
alert(' slider is slide here');
}
});
});

</script>
</body>
</html>

最佳答案

我能够重新创建该问题,但这不是错误。它是与 mouseup 事件的处理方式相关的浏览器特定行为。实际上 IE (edge) 的行为与 Firefox 相同。 Chrome 似乎是异常(exception),但您仍然可以在 chrome 中模拟相同的行为。我还没有测试过 Safari 或任何其他浏览器。这归结为 slide 函数在 mousedown 上触发。您已将该功能定义为发出警报。通常发生的情况(我猜)是,在警报打开后,您将手指从鼠标按钮上移开,然后再次单击“确定”按钮。这会导致警报的消息框处理 mouseup 事件。 Chrome 恰好处理得很好,允许父窗口(主浏览器窗口)接收 mouseup 事件。显然 Firefox 和 IE 没有。因此,页面仍然认为鼠标按钮已按下,并认为您在关闭警报后仍在尝试使用 slider 。

我认为我可以预测你可以在 chrome 中模拟这个事实,这证明我理解这个问题。在chrome中模拟的方法是点击 slider 并开始拖动它,但是当警报打开时,不要释放鼠标按钮,而是使用空格键“单击确定按钮”。警报关闭后,仍然按住鼠标按钮,从左向右移动,您将看到与 Firefox 中相同的结果。您正在手动模拟 Firefox 处理鼠标状态的方式。

那么如何解决这个问题呢?删除警报,或将警报设置为超时,这将允许在警报消息框吞噬它之前处理 mouseup 事件...

$(document).ready(function(){

// This block isn't necessary, just adding for completion in my example
var cnt = 0; // keeping a count for unique messages
// just adding a container for non-blocking output messages
$('body').append('<div id="output"></div>');
// End unnecessary block ----------------------------------------------

$('.sliderSpecific').slider({
animate: true,
range: "min",
step: parseInt(50),
slide: function( event, ui ) {
// Causes unexpected behavior in IE/Firefox
//alert(' slider is slide here');

// Non-blocking output option...
console.log(' slider is slide here');
// Another non-blocking output option...
$('div#output').html(' slider is slide here (' + (cnt++).toString() + ')');

// Workaround for using blocking output (alert/confirm)
setTimeout(function() {
alert('yay, on a delay works!');
}, 0);
}
});

});

关于javascript - Jquery slider 附加鼠标事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32196543/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com