我有以下情况:
在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.
});
有可能做这样的事吗?请注意,我无法控制脚本在我的网站上的包含方式。无法改变该顺序。
答案 0 :(得分:2)
您仍然可以对同一事件拥有更多绑定
它们将按照代码中的第一个进行排序
所以你可以:
$("#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()实现为回调函数。