Firefox中bxSlider的onclick事件失效问题求助
解决Firefox中bxSlider插件onclick事件无法触发的问题
嘿,我来帮你排查这个Firefox里bxSlider点击事件失效的问题!看了你的代码,发现几个很可能导致问题的点,咱们一个个来解决:
事件参数未声明,Firefox直接报错中断:你在回调里用了
e.preventDefault(),但函数里根本没传e参数啊!Chrome这类浏览器会把event当全局变量用,但Firefox不吃这一套,这里会直接抛出e is not defined的错误,导致后续代码全跑不起来。赶紧把函数改成这样:$(document).on('click', '.more', function (e) { // 这里加上e参数 e.preventDefault(); // 剩下的代码... });选择器写错,找不到bx-viewport元素:你代码里写的
$("bx-viewport")是找<bx-viewport>标签,但bxSlider的视口是个带类名.bx-viewport的div,没加.的话肯定找不到。把所有用到这个选择器的地方都改成.bx-viewport:var startHeight = $(".bx-viewport").height(); // 还有后面的animate也要改 $(".bx-viewport").animate({ height: startHeight + heightSpan + 15 }, 200);动态替换HTML的小提醒:你最后用
$(this).parent().html('...')替换了父元素内容,这会把原来的.more元素删掉。不过你已经用了$(document).on这种事件委托方式,只要后续新增的元素还是带.more类,事件依然能触发,这部分是没问题的。
另外,强烈建议你打开Firefox的开发者工具(按F12),切到Console标签看看报错信息——这种事件失效的问题,控制台基本都会直接告诉你哪里错了,比如刚才说的e未定义,一眼就能定位。
按照上面的修改调整后,应该就能在Firefox里正常触发点击事件,执行后续的展开逻辑啦!
内容的提问来源于stack exchange,提问作者Daniel Kopťák
相关产品推荐
相关产品推荐

