[英]Unable to stop page reload
使用events.peventDefault()
和events.stopPropagation()
,无法阻止页面重新加载。
bindSearch: function() {
var val = null;
var input = null;
config.bindThis('chatSearchFriends', 'body', 'searchBar', function(value, events) {
input = $(value);
val = $(input).val();
timer = setTimeout(doSearch, 1000);
config.showThis('clearSearch');
var keycode = (events.keyCode ? events.keyCode : events.which);
if (keycode == '13' && !events.shiftKey) {
//prevent page reload
events.stopPropagation();
events.preventDefault();
console.debug('enter');
}
});
config.bindThis('chatClearSearch', 'body', 'clearSearch', function(value, events) {
//clear search text
});
function doSearch() {
//fetch matched search
}
},
在上面的代码中,我在keyup事件(chatSearchFriends)
上绑定了搜索框 。
在用户键入内容时,如果他们按Enter键,则该页面不应重新加载,这是我的关注。
无论用户是否按Enter,Ajax都会在1秒后获取匹配的数据。 这是通过以下行完成的: timer = setTimeout(doSearch, 1000);
因此,按Enter键只能停止重新加载页面。 我不确定上述原因为何不能阻止它。
bindThis:
bindThis: function(eventKey, bindTo, selectorKey, callback, bindOnceOnly = false) {
this.unBindThis(bindTo, eventKey);
if (bindOnceOnly) {
this.getSelectorDOM(bindTo).one(this.events[eventKey], this.selectors[selectorKey], function(e) {
callback(this, e);
});
return;
}
this.getSelectorDOM(bindTo).on(this.events[eventKey], this.selectors[selectorKey], function(e) {
callback(this, e);
});
},
在上面的代码中,我在keyup事件(chatSearchFriends)上绑定了搜索框。
您无法停止在按下键向上时传播键。 该事件已经发生。 它必须在按下按键或按下按键时。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.