代码之家  ›  专栏  ›  技术社区  ›  Ilian Iliev

标记并单击事件=“javascript:my\ u function()” 与onclick=“我的函数()” 或

  •  2
  • Ilian Iliev  · 技术社区  · 15 年前

    <a href="javascript: void(0)" onclick="funciton_X()">click here</a>
    

    <a href="javascript: funciton_X()">click here</a>
    

    <a id="a_tag" href="javascript: void(0)">click here</a>  
    <script type="text/javascript">  
    $('#a_tag').click(function(){})  
    </script>
    

    3 回复  |  直到 15 年前
        1
  •  3
  •   Darin Dimitrov    15 年前

    最后一个叫做 unobtrusive javascript 我建议您使用它,因为它主张在标记和javascript之间进行清晰的分离。它还具有较小的标记文件的优点,而外部javascript文件将由客户端浏览器缓存。

    正如@daviddorward在评论部分指出的,如果您使用的是最后一种方法,建议 href 属性指向某个真实的url,这样当客户端禁用javascript时,就会重定向客户端。这种技术叫做 progressive enhancement

    总结一下:

    <a id="a_tag" href="basic.htm">click here</a>
    

    然后在一个单独的javascript文件中(例如 jQuery 但你可以用任何你喜欢的东西):

    $(function() {
        $('#a_tag').click(function() {
            // TODO: some nice effect
            return false;
        });
    });
    
        2
  •  0
  •   Matthew Abbott    15 年前

    我更喜欢后者。将javascript与html分离是一种很好的做法,可以更轻松地维护代码。JQuery、Prototype、Mootools等库在这方面很有帮助。这与在外部样式表和内联样式中使用CSS非常相似。首选方法是将它们分开,这样可以生成干净的语义html。

    再举一个例子:

    <form id="myForm"> .... </form>
    

    假设我想提交这个表单,但我想异步提交,我可以使用JQuery附加一个事件,该事件将通过AJAX提交,如果javascript不可用,它会很好地降级,以便执行标准的post back。

        3
  •  0
  •   kapser    15 年前

    this.preventDefault(); 在函数中。

    //我不知道如何对达林迪米特罗夫的回答加上评论。

    推荐文章