jQuery绑定点击

时间:2011-05-17 07:52:56

标签: jquery click bind

我有以下情况:

在html页面中,我有一个动态生成的按钮,类似于:

<div id='myButton'></div>

这个html页面包含一个脚本(例如A.js),它处理网站的大部分功能,在这个脚本中按钮被绑定到一个处理程序:

$("#myButton").bind("click", function(){
foo();
});

到目前为止它很简单。现在,仅在特定情况下,我需要相同的按钮来执行第二个功能。这必须通过另一个脚本完成,动态生成并注入html站点。所以html看起来与此类似:

<script type=text/javascript src=A.js></script>
<script type=text/javascript>
//Dynamically generated script
</script>

我不想覆盖以前的功能,我仍然需要执行它,但我还需要在第一个功能之前执行此功能。并且无法更改网站上包含脚本的方式。

所以,我写了以下内容(在第二个脚本标记内):

    $("#myButton").bind("click",
     function(){
          bar(); // I still want foo() to be executed but after this is executed first. 
});

有可能做这样的事吗?请注意,我无法控制脚本在我的网站上的包含方式。无法改变该顺序。

2 个答案:

答案 0 :(得分:2)

您仍然可以对同一事件拥有更多绑定

  

http://jsbin.com/iyewu5/edit

它们将按照代码中的第一个进行排序

所以你可以:

$("#myButton").bind("click", function() { foo(); });

和其他脚本

$("#myButton").bind("click", function() { bar(); });

这将充当

$("#myButton").bind("click", function() { foo(); bar(); });

只要您将它们放在$(document).ready( function() {});

答案 1 :(得分:0)

为什么不将bolt foo,bar组合成该函数..

$("#myButton").bind("click", function(){
 bar();
 foo();
});

或者您可以将foo()实现为回调函数。