Jquery 事件触发器外部元素赢得';不要在水龙头上点火
我已经设置了两个事件触发器,当用户在特定元素之外单击时关闭它们。这对非移动设备非常有效,但在移动设备或平板电脑上它们不会启动。我假设这是因为点击事件的触发方式与点击不同。关于如何实现这一点,以使一个功能同时涵盖这两个方面,有何建议Jquery 事件触发器外部元素赢得';不要在水龙头上点火,jquery,mobile,triggers,click,tap,Jquery,Mobile,Triggers,Click,Tap,我已经设置了两个事件触发器,当用户在特定元素之外单击时关闭它们。这对非移动设备非常有效,但在移动设备或平板电脑上它们不会启动。我假设这是因为点击事件的触发方式与点击不同。关于如何实现这一点,以使一个功能同时涵盖这两个方面,有何建议 // Listen for unique event targets $(document).on( 'click', function(event) { if (!$(event.target).closest( '.modal .con
// Listen for unique event targets
$(document).on( 'click', function(event) {
if (!$(event.target).closest( '.modal .content' ).length) {
$( '.modal' ).fadeOut(200);
}
if (!$(event.target).closest( '.language-selector ul' ).length) {
if ( $( '.language-selector' ).is( ':visible') ) {
$( '.language-selector >' ).removeClass('active');
}
}
if (!$(event.target).closest( '.searchbox' ).length) {
if ( $( '.searchfield' ).is( ':visible') ) {
$( '.searchfield' ).removeClass('active').parents( '.searchbox' ).find( 'input[type="submit"]' ).removeClass( 'active' );
}
}
});
是,单击和点击是不同的事件。 您可以使用JQuery选择器语法
(单击tap)
,绑定这两者:
尝试将“单击”绑定到“touchstart”:
对…的评价。。。如果您没有使用jQuery Mobile(或其他定义“tap”的插件/扩展),那么您就没有访问“tap”事件的权限
如果您只需要访问“tap”,那么有许多解决方案将捕获不是jquery移动版的tap事件,并且没有那么强大
关于“touchstart”和其他本机js touch事件的更多信息你能创建一个小提琴吗?答案在这里,谢谢,但除了在链接目标上,我无法触发它。是因为我没有使用jQuery mobile吗?我需要它在任何元素上触发。@StaffanEstberg,是和否。使用JavaScript的Mobile总是反复试验。jquerymobile尝试合并事件,这可能更好。或者您的问题可能是点击和点击之间的300毫秒差。考虑到您的淡入淡出效果和200毫秒的差异,它可能是。在这种情况下,Fastclick可能会有所帮助。不断尝试不同的解决方案,直到其中一个奏效。快速点击可在以下网址找到:
// Listen for unique event targets
$(document).on( 'click tap', function(event) {
if (!$(event.target).closest( '.modal .content' ).length) {
$( '.modal' ).fadeOut(200);
}
$(document).on( 'click touchstart', function(event) {
if (!$(event.target).closest( '.modal .content' ).length) {
$( '.modal' ).fadeOut(200);
}