Mouseup 事件未使用函数内部代码触发
Mouseup event not firing with code inside function
我正在尝试使用 jQuery 创建按住确认按钮。问题是当我在此函数中插入代码时 mouseup
事件没有触发。它仅在函数为空且只有 console.log
时触发。这是示例:
self.on('mousedown touchstart', function(e) {
e.preventDefault();
self.addClass('-loading -progress');
clickDuration = setTimeout(function(e) {
self.trigger('click').removeClass('-progress');
console.log('clicked for 2 seconds');
}, parseInt(confirmDuration));
console.log(e);
}).on('mouseup touchend', function(e) {
self.removeClass('-loading -progress');
clearTimeout(clickDuration);
console.log(e);
});
mouseup
不会触发。
self.on('mousedown touchstart', function(e) {
e.preventDefault();
console.log(e);
}).on('mouseup touchend', function(e) {
console.log(e);
});
mouseup
会触发。
无论如何,我已经创建了我的代码的完整示例,您可以在这里现场使用它:https://jsbin.com/bozusiboku/1/edit?js,output
谢谢!
如果您从语句 self.addClass('-loading -progress');
.
中删除 class -loading
,则您的代码有效
-loading
添加了 CSS pointer-events: none
,它会禁用按钮上的鼠标事件并阻止 mouseup 触发。
我正在尝试使用 jQuery 创建按住确认按钮。问题是当我在此函数中插入代码时 mouseup
事件没有触发。它仅在函数为空且只有 console.log
时触发。这是示例:
self.on('mousedown touchstart', function(e) {
e.preventDefault();
self.addClass('-loading -progress');
clickDuration = setTimeout(function(e) {
self.trigger('click').removeClass('-progress');
console.log('clicked for 2 seconds');
}, parseInt(confirmDuration));
console.log(e);
}).on('mouseup touchend', function(e) {
self.removeClass('-loading -progress');
clearTimeout(clickDuration);
console.log(e);
});
mouseup
不会触发。
self.on('mousedown touchstart', function(e) {
e.preventDefault();
console.log(e);
}).on('mouseup touchend', function(e) {
console.log(e);
});
mouseup
会触发。
无论如何,我已经创建了我的代码的完整示例,您可以在这里现场使用它:https://jsbin.com/bozusiboku/1/edit?js,output
谢谢!
如果您从语句 self.addClass('-loading -progress');
.
-loading
,则您的代码有效
-loading
添加了 CSS pointer-events: none
,它会禁用按钮上的鼠标事件并阻止 mouseup 触发。