您好我现有的javascript代码存在问题。
背景是一些JSP标签自动包含JS功能,然后一些html元素需要运行这个功能。 但重点是需要使用的许多html元素都包含JS函数,并且很难修改每个单独的元素来配置它应该运行的函数。
让我们考虑一个简单的例子:我们有JSP Tag来生成表
<table id="automaticallyGeretatedId">
<tr>
<td></td>
</tr>
</table>
这包括一些JS函数
function removeItemFromTable(){
//modify automaticallyGeretatedId
}
function addItemToTable(){
//modify table, add values and so on..
}
然后我们有一些html外部按钮或/和div-s,其方法具有常量名称“clearData”,但JS是HTML页面的一部分 有时以这种方式(嵌入在Html中)
<script>
function clearData(){/*some code*/}
</script>
有时在包含文件中
function clearData(){ //some code
}
所以我的问题是:除了修改代码中的每个简单clearData之外,确保每次运行clearData函数时,函数removeItemFromTable()也会运行吗?
我的意思是我可以搜索clearData函数并在调用removeItemFromTable函数后附加吗?这个操作应该在哪里完成,最好的方法是什么?
让我们假设每次当clearData()函数出现时,函数removeItemFromTable()也会被包含在内。
答案 0 :(得分:1)
最后我决定使用此链接技术描述:
Adding code to a javascript function programmatically
我设置了文件准备搜索功能clearData()
$( document ).ready(function() {
decorateClearData();
});
和函数decorateClearData();
中的代码function decorateClearData() {
clearData = (function() {
var cached_function = someFunction;
return function() {
cached_function.apply(this, arguments); // use .apply() to call it
// and my new code:
removeItemFromTable();
};
}());
}
这是因为clearData是全局函数,也许这不是实用的方法,但我没有其他的想法。