如何使用Turbolinks.visit(path)时防止冒泡事件
how to prevent bubbling event when use Turbolinks.visit(path)
我在自己的项目中使用 aspnetmvcturbolinks,并且我有重新加载页面Turbolinks.visit(path) 当用户在输入中添加文本时。但是,当页面更改时,我检查输入的这个keyup事件是否触发了多个,并且我添加了返回false但不起作用。
$(document).on("ready page:load", function() {
$('input[name=keyword]').keyup(function (e) {
alert();
var $text = $(this).val();
if ($text.length > 1) {
$('html, body').animate({ scrollTop: 0 }, 600, function() {
Turbolinks.visit('@searchUrl' + '?keyword=' + $text);
});
}
if ($text.length == 0) {
Turbolinks.visit('@searchUrl');
}
return false;
});
$(document).on('change', 'select[name="order"]', function() {
Turbolinks.visit('@searchUrl');
});
$(document).on('change', 'select[name="count"]', function() {
Turbolinks.visit('@searchUrl');
});
});
什么是解决方案?谢谢
尝试使用
e.stopPropagation();
而不是
return false;
http://api.jquery.com/event.stoppropagation/
试试这个,
if(e.stopPropagation)e.stopPropagation();
else e.cancelBubble=true;//其中 e 是一个事件对象
$('input[name=keyword]').keyup(function (e) {
alert();
var $text = $(this).val();
if ($text.length > 1) {
$('html, body').animate({ scrollTop: 0 }, 600, function() {
Turbolinks.visit('@searchUrl' + '?keyword=' + $text);
});
}
if ($text.length == 0) {
Turbolinks.visit('@searchUrl');
}
if(e.stopPropagation)e.stopPropagation();
else e.cancelBubble=true;
});
相关文章:
- 分派点击事件并保留击键修饰符
- 模糊事件的Javascript测试
- keyup事件处理程序更改焦点不适用于快速键入
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 如何使Javascript动态html表及其上的事件
- 使用类从一个标记中双击事件
- 如何在未直接触发的情况下停止事件
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- 对iPad上的点击事件反应缓慢
- 事件和状态
- Fancybox是否将Click事件静音
- 主干-不管怎样,检查事件以前是否绑定过
- 从控制器返回后Ajax启动事件激发
- 如何从画布上的某个移动事件中获取X和Y
- Jquery:未触发select事件
- JsFiddle上的鼠标事件不起作用
- 只覆盖箭头键滚动事件
- $window.ga在AngularJS事件中未定义
- Turbolinks等效于window.load的事件
- 如何使用Turbolinks.visit(path)时防止冒泡事件