【发布时间】:2015-10-27 07:54:48
【问题描述】:
我有我的代码:
+function($) {
'use strict';
var Ripple = function(element) {
var $this = $(this)
$(element).on('mousedown', $this.start)
}
Ripple.prototype.start = function(e) {
var $this = $(this)
var r = $this.find('.ripple-wave')
if(r.length == 0) {
$this.prepend('<div class="ripple-wave"></div>')
r = $this.find('.ripple-wave')
}
if($this.hasClass('btn') || $this.hasClass('single-action')) {
var posX = $(this).offset().left, posY = $(this).offset().top
r.css('left', e.pageX - posX)
r.css('top', e.pageY - posY)
}
r = r.parent()
r.addClass('active')
r.one('webkitAnimationEnd oanimationend msAnimationEnd animationend', function(e) {
r.removeClass('active')
})
}
var old = $.fn.ripple
$.fn.ripple = function() {
return this.each(function() {
new Ripple(this)
})
}
$.fn.ripple.Constructor = Ripple
$.fn.ripple.noConflict = function () {
$.fn.ripple = old
return this
}}(jQuery);
但如果我在 Mozilla Firefox 上进行测试,我必须双击该元素才能执行其功能。
我使用以下方法将其初始化为我的页面加载:
$('.ripple').ripple()
PS:我也有其他 JS 文件中每个元素的点击事件。
在 chrome 中,单击即可正常工作。
【问题讨论】:
-
你能贴出 html 来重现它吗?
-
不认为这可以解决您的问题,但
$(element).on('mousedown', $this.start)不应该是$(element).on('mousedown', this.start)? -
能否请您提供完整的 JQuery 代码、完整的 html 代码,并可能更好地说明您的问题?
-
如果能提供一个jsFiddle来帮助调试就更好了:)
标签: javascript html ripple