Javascript bxSlider:禁用桌面浏览器的touchEnabled
如果用户有桌面浏览器,我尝试禁用bxSlider库的touchEnabled选项Javascript bxSlider:禁用桌面浏览器的touchEnabled,javascript,jquery,html,bxslider,Javascript,Jquery,Html,Bxslider,如果用户有桌面浏览器,我尝试禁用bxSlider库的touchEnabled选项 if(navigator.userAgent.match(/Chrome|Mozilla|Safari/)){ $('.theSlider').bxSlider({ touchEnabled: false }); } //Html slider <ul class="theSlider"> if(navigator.userAgent.match(/Chrom
if(navigator.userAgent.match(/Chrome|Mozilla|Safari/)){
$('.theSlider').bxSlider({
touchEnabled: false
});
}
//Html slider
<ul class="theSlider">
if(navigator.userAgent.match(/Chrome | Mozilla | Safari/){
$('.theSlider').bxSlider({
touchEnabled:错误
});
}
//Html滑块
在Chrome的开发者工具控制台中调试时,在尝试将其设置为false时,未定义I get touchEnabled。我做错了什么
touchstart
,bx方法将运行并传递存储新选项的对象(cfg2
)//初始配置
变量cfg1={
touchEnabled:错误
}
//备用配置
变量cfg2={
是的,
没错,
瑞士阈值:25,
preventDefaultSwipeX:false,
预防默认Swipey:错误
}
/*将瞬间存储在变量中。
||通过cfg1选项
*/
var bx=$('.bx').bxSlider(cfg1);
/*委派窗口对象上的touchstart事件
||它基本上只检测touchstart
||事件,如果设备可以实际使用触摸事件。
||因此,当使用笔记本电脑、台式机等时
||touchstart将永远不会被触发。
*/
/*现在,如果这加载到移动设备上,它将检测到
||touchstart事件,然后使用新的
||配置(cfg2),其中的选项是
||touchEnabled:true/属性:值
||完成后,它将删除事件侦听器
||使用.off()方法。
*/
$(窗口).on('touchstart',enableTouch);
功能启用触摸屏(e){
bx.重新加载滑块(cfg2);
$(窗口).off('touchstart',enableTouch);
}
img{
显示:块;
保证金:0自动;
}
touchstart
,bx方法将运行并传递存储新选项的对象(cfg2
)//初始配置
变量cfg1={
touchEnabled:错误
}
//备用配置
变量cfg2={
是的,
没错,
瑞士阈值:25,
preventDefaultSwipeX:false,
预防默认Swipey:错误
}
/*将瞬间存储在变量中。
||通过cfg1选项
*/
var bx=$('.bx').bxSlider(cfg1);
/*委派窗口对象上的touchstart事件
||它基本上只检测touchstart
||事件,如果设备可以实际使用触摸事件。
||因此,当使用笔记本电脑、台式机等时
||touchstart将永远不会被触发。
*/
/*现在,如果这加载到移动设备上,它将检测到
||touchstart事件,然后使用新的
||配置(cfg2),其中的选项是
||touchEnabled:true/属性:值
||完成后,它将删除事件侦听器
||使用.off()方法。
*/
$(窗口).on('touchstart',enableTouch);
功能启用触摸屏(e){
bx.重新加载滑块(cfg2);
$(窗口).off('touchstart',enableTouch);
}
img{
显示:块;
保证金:0自动;
}
感谢您的回复,这是我设法找到的解决方案。我将默认的var touchDevice设置为false。如果用户正在使用移动设备,它会检测并将touchDevice设置为true。当我初始化bxSlider时,它将接受touchDevice设置为的任何内容,并将touchEnabled设置为该结果
// Enable touch events for Mobile Browsers
var touchDevice = false;
if (navigator.userAgent.match(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/)) {
touchDevice = true;
}
$('.theSlider').bxSlider({
touchEnabled: touchDevice
});
感谢您的回复,这是我设法解决的问题。我将默认的var touchDevice设置为false。如果用户正在使用移动设备,它会检测并将touchDevice设置为true。当我初始化bxSlider时,它将接受touchDevice设置为的任何内容,并将touchEnabled设置为该结果
// Enable touch events for Mobile Browsers
var touchDevice = false;
if (navigator.userAgent.match(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/)) {
touchDevice = true;
}
$('.theSlider').bxSlider({
touchEnabled: touchDevice
});
什么是未定义的
?“你是如何检查它的?”昆汀我正在用Chrome进行调试。if语句返回true,它可以找到$('.theSlider').bxSlider
。所以我最好的猜测是touchEnabled在某种程度上是未定义的,“在Chrome中”是非常模糊的。确切地说,未定义的是什么?您在哪里看到显示的未定义的?也许你的开发工具的屏幕截图(你看到的是在开发工具中吗?)会有所帮助?@Quentin在开发工具控制台中,我正在键入if(navigator.userAgent.match(/Chrome | Mozilla | Safari/){$('.theSlider').bxSlider({touchEnabled:false});}
我现在收到的错误消息是touchEnabled未定义。@user3586417与大多数jQuery插件一样,必须重新加载bxSlider才能更改选项,不能“动态”更改它们。有关可能的解决方案,请参阅我的答案。什么是未定义的?“你是如何检查它的?”昆汀我正在用Chrome进行调试。if语句返回true,它可以找到$('.theSlider').bxSlider
。所以我最好的猜测是touchEnabled在某种程度上是未定义的,“在Chrome中”是非常模糊的。确切地说,未定义的是什么?您在哪里看到显示的未定义的?也许你的开发者工具的截图(你看到的是开发者工具吗?)会有帮助?@Quentin在开发者工具控制台中,我正在键入if(navigator.userAgent.match(/Chrome | Mozilla | Safari/){$('.theSlider'))