我想在身体之前调用另一个函数,但是如何?
系统显示错误undefined function myx
我只能在正文后添加代码。
<script type="text/javascript">
jQuery(function($){
function myx() {
alert("omg");
};
});
</script>
</head>
<body>
<script>
jQuery(document).ready(function($){
$("mytest").click(function(){
myx();
});
});
</script>
<a href="#" id="mytest">Check</a>
答案 0 :(得分:0)
该功能超出范围。您需要在jQuery回调之外定义函数。
<script type="text/javascript">
function myx() {
alert("omg");
};
</script>
</head>
<body>
<script>
jQuery(document).ready(function(){
$("#mytest").click(function(){
myx();
});
});
</script>
<a href="#" id="mytest">Check</a>
答案 1 :(得分:-1)
使用外部JavaScript,因此它已缓存到浏览器内存中,因此当您的客户端再次访问时,它将加载更快。然后看看:
// wrapper is same as $(document).ready() with no-conflict
jQuery(function($){
// should be defined once everything has loaded
function myx(){
// never use alert except to test
alert('OMG!');
}
// passing a function name like a var is the same as Anonymous function
$('#mytest').click(myx);
});
// Ignoring outer wrapper to save indenting - indent everything further
重要的是,应该在所有内容都加载后定义myx
。
您不必这样做,但最佳做法是使用外部JavaScript并将<script>
标记放在<head>
中,同时将<script type='text/javascript' src='yourUrl.js'></script>
设置为符合W3C标准。此外,技术上如果document.body
标记在<script>
中定义,则某些较旧的浏览器可能无法使用<body>
,因为HTML必须在JavaScript能够获取之前定义,这是为什么在jQuery()
中使用匿名函数(与$(document).ready()或JavaScript onload Event相同)。然后,您将使用JavaScript获取HTML,因为这些元素可用onload
。