当我想在某个事件被触发后阻止其他事件处理程序执行时,我可以使用两种技术之一.我将在示例中使用jQuery,但这也适用于plain-JS:
event.preventDefault()$('a').click(function (e) {
// custom handling here
e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)
return false$('a').click(function () {
// custom handling here
return false;
});
Run Code Online (Sandbox Code Playgroud)
这两种停止事件传播的方法之间有什么显着差异吗?
对我来说,return false;比执行方法更简单,更短并且可能更不容易出错.使用该方法,您必须记住正确的套管,括号等.
另外,我必须在回调中定义第一个参数才能调用该方法.也许,有一些原因可以解释为什么我应该避免这样做并使用preventDefault呢?有什么更好的方法?
javascript jquery event-handling event-propagation dom-events
我正在开发一个网络应用程序.在其中我有一个名为类别的部分,每当用户点击其中一个类别时,更新面板就会加载相应的内容.
用户点击类别后,我想更改浏览器的地址栏网址
www.mysite.com/products
Run Code Online (Sandbox Code Playgroud)
喜欢的东西
www.mysite.com/products/{selectedCat}
Run Code Online (Sandbox Code Playgroud)
没有刷新页面.
我可以使用某种JavaScript API来实现这一目标吗?
我正在使用以下代码将一个hashtag附加到url的末尾.这样,有人可以复制该网址并将其带回该页面,某些div可见.
$("a.live").click(function() {
window.location.hash = 'live';
$("#live).slideDown();
});
Run Code Online (Sandbox Code Playgroud)
在这个例子中,我有一个名为"live"的div,当点击一个链接时会滑动,并且"#live"被添加到url中.然后我有代码在加载页面时检查哈希标记以显示正确的div.
我的问题是,如何阻止浏览器在调用后跳转到"live"div?我不希望页面向下滚动到div,只是希望它打开并附加了主题标签,这样一个人就可以复制它并返回那个显示div的页面.
有小费吗?
谢谢!