禁用移动设备的jQuery
我想为移动设备禁用部分jQuery脚本,以下是我要禁用的代码:
$('#inner-slide1').click(function(e) { e.preventDefault(); dataslide = $(this).attr('data-slide'); goToByScroll(dataslide); }); $('#inner-slide2').click(function(e) { e.preventDefault(); dataslide = $(this).attr('data-slide'); goToByScroll(dataslide); }); $('#inner-slide3').click(function(e) { e.preventDefault(); dataslide = $(this).attr('data-slide'); goToByScroll(dataslide); }); $('#inner-slide4').click(function(e) { e.preventDefault(); dataslide = $(this).attr('data-slide'); goToByScroll(dataslide); }); $('#inner-slide5').click(function(e) { e.preventDefault(); dataslide = $(this).attr('data-slide'); goToByScroll(dataslide); });
感谢任何建议。
如果你只需要给这些元素一个类(我要去.inner-slide
)你只需要做一次就重复一个函数5次:
var isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent) ? true : false; $('.inner-slide').click(function(e) { if(!isMobile) { e.preventDefault(); dataslide = $(this).attr('data-slide'); goToByScroll(dataslide); } });
if语句只会在移动设备上生成true(Android,webOS,iPhone,iPad,iPod,Blackberry)
请注意
$(this).attr('data-slide');
也可以写成:
$(this).data('slide');
使用来自http://detectmobilebrowsers.com/的代码使用JS代码来检测移动 – 非常全面的检测…将需要一些修改,因为它们的function将重定向…但应该很容易做:)
此处还有另一个很好的答案: 禁用手机脚本