GVKun编程网logo

JavaScript - href vs onclick 用于超链接上的回调函数(html超链接怎么返回原页)

16

针对JavaScript-hrefvsonclick用于超链接上的回调函数和html超链接怎么返回原页这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展用法解析、href与onclick中的J

针对JavaScript - href vs onclick 用于超链接上的回调函数html超链接怎么返回原页这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展 用法解析、href与onclick中的JavaScript函数、javascript – jquery href和onclick分离、javascript – Jquery如何在href中添加onclick等相关知识,希望可以帮助到你。

本文目录一览:

JavaScript - href vs onclick 用于超链接上的回调函数(html超链接怎么返回原页)

JavaScript - href vs onclick 用于超链接上的回调函数(html超链接怎么返回原页)

我想在没有任何重定向的情况下单击运行一个简单的 JavaScript 函数。

href将 JavaScript 调用放在属性中是否有任何区别或好处(像这样):

<a href="javascript:my_function();window.print();">....</a>

与将其放入onclick属性中(将其绑定到onclick事件)?

答案1

小编典典

将 onclick 放在 href 中会冒犯那些坚信内容与行为/动作分离的人。理由是你的 html 内容应该只关注内容,而不是表现或行为。

这些天的典型路径是使用 javascript 库(例如 jquery)并使用该库创建事件处理程序。它看起来像:

$(''a'').click( function(e) {e.preventDefault(); /*your_code_here;*/ return false; } );

用法解析" alt=" 用法解析">

用法解析"> 用法解析

javascript:void(0) 仅仅表示一个死链接

 

如果是个# javascript:void(#),就会出现跳到顶部的情况,搜集了一下解决方法

 

1:<a href="####"></a>
2:<a href="javascript:void(0)"></a>
3:<a href="javascript:void(null)"></a>
4:<a href="#" onclick="return false"></a>
5:<span></span>(好像在FF中不能显示)

 

JavaScript中 void是一个操作符,该操作符指定要计算一个表达式但是不返回值

 

不整体刷新页面的情况下,可以使用void(0),但是在需要对页面进行refresh的情况下,那就要仔细了。

为什么location.href不自动跳转?慎用javascript:void(0)

<a href="javascript:void(0)" onclick="delete('123')">删除</a>
<script>
function delete(id) {
   if(confirm("确实要删除[为什么location.href不自动跳转?]吗?")) {
       location.href="/delete.jsp?id=" + id;
   }
}
以上代码不管如何检查都没有任何问题,而location.href="/delete.jsp?id=" + id;在别的地方都好使,为什么这段代码就行呢?
原因是那个 void(0),把代码改成:
<a href="javascript:delete('123')">删除</a>
<script>
function delete(id) {
   if(confirm("确实要删除[为什么location.href不自动跳转?]吗?")) {
       location.href="/delete.jsp?id=" + id;
   }
}
我们发现,页面立即就跳转了,能正常删除相应的数据。

void是一个操作符,会计算一个表达式,但不会返回值,当然也不会改变当前页面的任何内容,也就不会正常的跳转

href与onclick中的JavaScript函数

href与onclick中的JavaScript函数

我想在单击时运行一个简单的JavaScript函数,而无需任何重定向。

将JavaScript调用放入href属性之间有什么区别或好处(如下所示:

<a href="javascript:my_function();window.print();">....</a>

)与将其放入onclick属性(将其绑定到onclick事件)?

答案1

小编典典

将href置于href中会激怒那些坚信内容与行为/行为分开的人。理由是您的html内容应仅专注于内容,而不是表示或行为。

这些天的典型路径是使用JavaScript库(例如jquery)并使用该库创建事件处理程序。它看起来像:

$(''a'').click( function(e) {e.preventDefault(); /*your_code_here;*/ return false; } );

javascript – jquery href和onclick分离

javascript – jquery href和onclick分离

我有这样的代码
<a id="id101" href="javascript:func1();" onclick="return func2();">Link</a>

func2返回true或false.然后,仅当function2返回true时才调用func1.对 ?

在学习jquery时,我发现onclick不好并且折旧了,所以我将上面的代码修改为

<a id="id101" href="javascript:func1();">Link</a>
jquery
$("#id101").click(func2() {
  //same stuffs from before which was in func2
});

现在,我的问题是:

点击处理程序处理完毕后,我在href内部用JavaScript做什么?如果func2中的条件为真,我应该在func2的jQuery单击处理程序中调用func2内的func1吗?
还是有一些优雅的解决方案?

另外,分离html和事件代码是好的,但是这个id为id101的元素有很多与之关联的事件,而在大文件中,可能有很多html元素有很多事件.所以,当我有一个包含许多事件处理程序的大页面时,我怎样才能更好地了解哪个html元素具有哪些以及与之相关的事件数量?

根据要求对上述问题作出更多解释,

我的意思是id101可以有onclick,onmouSEOver,onmouSEOut和许多其他类似的事件.可以有许多这样的元素具有许多这样的事件处理程序.我怎样才能更好地发现它们?在旧式中,所有这些事件处理程序都放在一起,就像这样

< a id =“id101”href =“javascript:func1();” onclick =“return func2();”> Link< / a>.

我不是说这很好,但至少我可以看到它有这个onclick事件.但现在当把它分成jquery文件时,我必须先搜索这个jquery文件id101,然后检查与之关联的事件,这可能是html文件有很多元素和相关事件处理程序的问题.有没有更好的方法来找到这些信息?

解决方法

如果我理解正确,你想避免使用内联Javascript,但你也希望能够浏览一个a并知道它是否有一个绑定到它的事件.不幸的是,没有一种可接受的方式来表示这一点,因为内联Javascript是坏消息.也许你可以给你的元素一个虚拟课程,以帮助你将来的可读性.除此之外,忘记整个func1和func2的事情.只需在点击绑定中使用匿名函数即可.
<a id="some_id">Click Me</a>

<script type="text/javascript">
  $(document).ready(function(){

    $("#some_id").click(function(){

      // do something
      alert( $(this).attr("id") );

    });

  });
</script>

编辑:此外,删除href将删除视觉提示,因此您可以使用您的虚拟类使其看起来像一个.

这是你的小提琴:http://jsfiddle.net/zzTSt/1/

javascript – Jquery如何在href中添加onclick

javascript – Jquery如何在href中添加onclick

如何添加onclick =’openLightB(‘remove_ddi’,500);’在< a>打开< / a>使用jquery函数

我现在的代码是这样的

$(".remove_row").live("click", function(){
  $(".ddi tr:eq(2) td:eq(5) a").replaceWith("<a onclick='openLightB('remove_ddi',500);'>Remove</a>");
});

不幸的是结果就是这样

<a remove_ddi',500);'="" onclick="openLightB(">Remove</a>

解决方法:

使用.attr()让jquery处理转义引号怎么样:

$(".remove_row").live("click", function(){
  $(".ddi tr:eq(2) td:eq(5) a").attr('onclick', "openLightB('remove_ddi',500);");
});

DEMO

BTW,.live()已弃用,可以在将来的任何时候从库中删除.您应该考虑使用.delegate()或.on()进行事件委派.

今天关于JavaScript - href vs onclick 用于超链接上的回调函数html超链接怎么返回原页的介绍到此结束,谢谢您的阅读,有关 用法解析、href与onclick中的JavaScript函数、javascript – jquery href和onclick分离、javascript – Jquery如何在href中添加onclick等更多相关知识的信息可以在本站进行查询。

本文标签: