我的asp网站上有两个文件j,名为
1-jquery.datepick.js
2-jquery.hijridatepick.js
这些文件具有相同的名称功能,但第二个apear popup hijricalender我称之为
<script type="text/javascript">
$(function () {
$('[id$=TextBox1]').datepick({ dateFormat: 'dd/mm/yyyy' });
});
</script>
for textbox2
我想2从第一个文件中使用datepick函数如何icall它导致我引用第一个文件
$('[id$=TextBox2]').datepick({ dateFormat: 'dd/mm/yyyy' });
但是再次调用第二个文件的功能 ???
答案 0 :(得分:4)
第二个文件正在覆盖第一个文件。您必须更改其中一个函数的名称以避免冲突。
你会在文件中找到这样的东西:
jQuery.fn.datepick = function() {
// etc.
};
这是创建jQuery插件方法的地方。只需将一个或两个文件中的datepick
更改为不同且唯一的文件。
答案 1 :(得分:1)
如FishBasketGordo的回答所述,第二个加载函数将覆盖第一个函数,更改一个名称将解决这个问题,但是有一个更深层次的问题需要解决。
发生这种情况的原因是函数被添加到全局命名空间。在javascript中,代码来自的文件是无关紧要的。避免避免污染全局命名空间的一种方法是将函数包装在对象中,因此在您的情况下,您可能有:
/* 1-jquery.datepick.js */
datepick = new Object;
datepick.datepick = function() {
/* function definition here */
alert('first file function');
};
/* 2-jquery.hijridatepick.js */
hijridatepick = new Object;
hijridatepick.datepick = function() {
/* function definition here */
alert('second file function');
};
然后可以使用以下方法访问这些功能:
datepick.datepick();
/* alerts 'first file function' */
hijridatepick.datepick();
/* alerts 'second file function' */