事件阻止默认值不起作用
event prevent default not working
$(function(){
$('.button').click(function(e){
e.preventDefault();
history.pushState({url: 'index.html'},'','page1.html');
});
});
$(window).bind('popstate', function(e){
console.log(e.originalEvent);
});
删除e.preventDefault()
后,哈希标签将显示在 like localhost/page1.html#
之后,但添加e.preventDefault()
时,e.originalEvent.state
将显示为null
<a href="#" class="button">Click me</a>
问题出在哪里?我该如何解决?
编辑:
按下按钮时,地址栏更新(这很好(。但是,当我点击后退按钮时,状态对象显示为 null(它假设显示 {url: 'index.html'}(
您看到的不是错误,而是预期的行为。
首次加载页面时,状态为 /
,状态对象为 null。 当您单击带有 preventDefault
的锚标记时,状态将更改为 /page1.html
并被赋予要存储的对象。现在,当您按返回按钮时,popstate 事件发生在状态更改回 /
之后,它没有状态对象!
要进行演示,请单击该链接 3-4 次。现在,每次你回击时,originalEvent.state
都会有一个对象,直到你回到/
,当然没有状态对象。
若要使默认状态具有状态对象而不是 null,请使用 替换状态。
$(function(){
$('a').click(function(e){
e.preventDefault();
history.pushState({url: 'index.html'},'','page1.html');
});
});
$(window).bind('popstate', function(e){
console.log(e.originalEvent);
});
// give the current state a state object
history.replaceState({url: 'index.html'},'','');
http://jsfiddle.net/Kd3vw/6/
相关文章:
- jpm的默认Firefox路径没有'不起作用
- 默认光标在IE和Mozilla中不起作用
- 在机会不起作用时设置查找值's在潜在客户资格鉴定后创建
- select中布尔值的Angularjs ng值不起作用
- 对照数组脚本检查文本框中的值不起作用
- 当图像和链接是 json 对象属性的值时,它们不起作用
- onchange Jquery 在使用选择器更改值时不起作用
- jqBootstrapValidation不起作用,始终返回有效值;
- JavaScript的循环问题,将值插入数组将不起作用
- Javascript - 多维设置值不起作用
- 双击被阻止,但阻止默认值不起作用
- 默认值在 JavaScript 代码中不起作用
- 在 js 中循环以设置下拉列表的默认值.在 IE8 中不起作用
- angularjs-lib中的一些prbm默认值在select if(value和name)相同时不起作用
- 主干对象默认值不起作用
- 用angularjs的形式定义默认值,验证不起作用
- 事件阻止默认值不起作用
- ScrollTop等于一个不起作用的值
- 滑块默认值不起作用
- jQuery在Wordpress中不起作用-默认情况下起作用