【问题标题】:Bind one more javascript method to the href in Anchor tag将一个 javascript 方法绑定到 Anchor 标记中的 href
【发布时间】:2014-08-27 23:42:50
【问题描述】:

我有一个网页,其中在 onLoad 中使用 jQuery 创建了一个锚标记列表 (外部 JavaScript)。 (href 和 onclick 事件也在那里定义)

例如:

<a href="javascript:method1(1)" onclick="return method2(1);">Test1</a>
<a href="javascript:method1(2)" onclick="return method2(2);">Test2</a>

由于是通过外部javascript文件创建的,所以不能编辑这个onLoad,也不能编辑method1的方法定义

现在我希望在方法 1 完成后调用 method3

我们将不胜感激。

【问题讨论】:

标签: javascript jquery html onclick


【解决方案1】:

你可以覆盖method2,在你的外部js创建你的锚之后, 在加载所有资产后,您可以使用 body 标签的 load 事件:

function window_load()
{
     var newHandler = method2;
     method2 = function(arg){

         var result = newHandler(arg);

         // ...
         // you can call here any function or something else
         // ...

         return result;
     };
}

我试图覆盖method2,通过这种方法你可以改变任何你想要的方法

【讨论】:

  • 感谢您的回答,但这会调用实际的方法2吗?我想执行普通的method2,那么我的方法,可以吗?
  • 当然,通过这个var newHandler = method2;newHandler 是你原来的method2,它会被这个var result = newHandler(arg); 调用来获取result,在你做任何新的事情之后method2 正文,newHandler 的结果将由 return result; 返回...你需要这样做
  • +1 作为答案,让我试试,一旦成功就会接受答案
  • 好的,这样做,它肯定会工作......如果没有,我在这里......哈哈:D
  • 重要的是,您需要覆盖运行外部jsmethod2,并在窗口上下文中注册method2
【解决方案2】:

您可以编写一个包装函数来调用两者:

<head>
<script>
    function wrapperFunction(arg1, arg2){
        method2(arg1);
        method3(arg2);
    }
</script>
</head>
<body>
<a href="javascript:method1(1)" onclick="wrapperFunction(1,2);">Test1</a>
...

【讨论】:

  • 如前所述,我无法更改 onclick 绑定,因为它传递了一些参数
猜你喜欢
  • 1970-01-01
  • 2021-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-28
  • 2018-04-20
  • 2017-08-30
相关资源
最近更新 更多