【问题标题】:How do I add extra functionality to the same onclick event?如何为同一个 onclick 事件添加额外的功能?
【发布时间】:2012-11-12 00:50:16
【问题描述】:

我有一个

<input onclick="javascript:WebForm_DoPostBackWithOptions........" id='input-no1'></input>

元素,我想使用 jQuery 向它添加第二个 onclick 事件

我的意思是,一旦执行 onclick 事件:javascript:WebForm_DoP....,我希望通过调用 location.reload(); 重新加载页面

如何将这个额外的功能添加到上述元素的相同 onclick 属性中?

我查看了 bind(),但语法要求我按顺序键入所有事件。我想要做的是将后续事件添加到同一个 onclick 函数,无论初始事件可能是什么(我什至可能不知道初始事件是什么..)

提前感谢您的帮助。

编辑:

我现在使用的代码是:

$("#input-no1").bind('click',function()
{
   location.reload();
});

但没有任何反应,即使选择了元素并且我没有收到任何错误。我也尝试过:

$("#input-no1").bind('onclick',function()
{
   location.reload();
});

还是什么都没有

【问题讨论】:

    标签: javascript jquery css onclick bind


    【解决方案1】:

    您可以将这两个函数直接添加到您的 onclick 处理程序中。

    <input onclick="WebForm_DoPostBackWithOptions();location.reload(); " />
    

    或者您可以使用以下方法单独附加它:

    $("#input-no1").click(function () { 
        location.reload();
        //more code
    });​
    

    示例JSFiddle

    【讨论】:

    • 我想使用 jQuery 来做到这一点,而不是通过重新输入整个元素,而是通过简单地根据它拥有的 id 选择它(我省略了它),然后将额外的功能添加到它的 onclick 事件
    • @NortonCommander 更新了答案。您可以通过这种方式注册多个 onclick-listeners。
    • Hmm.. 恐怕这种绑定语法不会对元素添加任何内容,即使正确选择了元素并且在运行代码时我没有收到任何错误..
    • 是的,我明白了,但完全相同的语法在我的情况下不起作用。也许这与已经存在的事件是“javascript:DoPostBack.....”类型有关,这基本上是一个 js 脚本,可以将新项目添加到购物篮中......
    • 啊...如果您的doPostBack 本身导致服务器回发,JS 将进一步不会执行,因此不会命中其他处理程序。如果您先执行location.reload,则不会执行其他函数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-14
    • 1970-01-01
    • 1970-01-01
    • 2015-09-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多