关于是否在#
属性中使用javascript:void(0)
或href
,有一个similar popular question。
在Dart社区中,首选方法是什么?如果我使用哈希,浏览器会滚动到顶部,但是javascript:void(0)
它看起来很难看,不仅因为它是因为我们正在做Dart而不是JavaScript。
答案 0 :(得分:4)
网上有一个可怕的神话,我们应该使用#
或javascript:void(0)
。请不这样做。允许您使用#
的唯一情况是您要滚动到页面的不同部分。
如果您不希望该链接具有将您带到某处的默认行为,请不要使用链接或取消整个href
- 属性:
<强>的test.html 强>
<!DOCTYPE html>
<html>
<body>
<a id="foo">Do something</a>
<script type="application/dart" src="test.dart"></script>
<script src="https://dart.googlecode.com/svn/branches/bleeding_edge/dart/client/dart.js"></script>
</body>
</html>
接下来我们必须覆盖一些默认样式以确保我们获得手形光标和下划线,因为浏览器倾向于在没有href
- 属性时删除它们:
<强> styles.css的强>
a {
cursor: pointer;
text-decoration: underline;
}
a:hover {
text-decoration: none;
}
最后我们的Dart代码可以执行您想要的任何操作:
<强> test.dart 强>
import 'dart:html';
void main() {
AnchorElement a = query('#foo');
a.on.click.add((e) {
print('Clicked! Do something.');
});
}