2011-05-17 87 views
0

我有以下情况:jQuery的绑定点击

在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

你仍然可以有更多的绑定同一事件

http://jsbin.com/iyewu5/edit

,他们将被解雇由什么是代码

第一排序,所以你可以有:

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

和其他脚本

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

这将作为你只要把他们下$(document).ready(function() {});

+0

不幸的是,我无法控制A.js中事件的约束方式。这由CMS完成。我可以添加新的点击绑定,并且需要找到一种方法在cms添加之前先执行此点击。 – user496607 2011-05-17 09:45:29

+0

这是一个什么是第一个问题,只是交换位置......告诉我们你正在尝试用实时代码完成什么,以获得更好的帮助。 – balexandre 2011-05-17 11:08:59

0

为什么不直接结合螺栓富,扎入该函数作为

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

..

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

或者你可以实现foo()作为回调函数。

+0

是的,但我没有添加foo(),它已被系统添加(本例中为CMS),我无法改变这种行为! – user496607 2011-05-17 09:43:55