2

关于是否使用或在属性中存在类似的流行问题。#javascript:void(0)href

在 Dart 社区中执行此操作的首选方式是什么?如果我使用哈希,浏览器会滚动到顶部,但javascript:void(0)它看起来很丑,不仅因为它是,而且因为我们正在使用 Dart 而不是 JavaScript。

4

1 回答 1

4

网络上有一个可怕的神话,我们应该使用#javascript:void(0). 请要这样做。唯一允许使用#的情况是当您想要滚动到页面的不同部分时。

如果您不希望链接具有将您带到某个地方的默认行为,请不要使用链接或将整个href-attribute 带走:

测试.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-attribute 时浏览器倾向于删除它们:

样式.css

a {
    cursor: pointer;
    text-decoration: underline;
}

a:hover {
    text-decoration: none;
}

最后是我们的 Dart 代码,它可以做任何你想做的事情:

测试.dart

import 'dart:html';

void main() {
  AnchorElement a = query('#foo');
  a.on.click.add((e) {
    print('Clicked! Do something.');
  });
}
于 2012-10-28T16:21:34.223 回答