我的功能在 document.ready 旁边,我想在变量中使用值来调用它们。我尝试使用window[variablename]();
但是它在内部无效document.ready ,但直接调用它就可以了..
认为这是document.ready中的功能
$(document).ready(function() {
function jhon(){
alert('works');
};
});
我从变量中获取函数名称,该变量的值是函数的名称..
下面的代码将获取URL的散列部分示例:#JHON并删除#并将其存储在URLHASH变量中。例如:JHON
var urlhash = document.location.hash;
urlhash = urlhash.replace(/^.*#/, '');
当我这样打电话时它不起作用..
window.onload=function() {
window[urlhash]();
};
但是当我这样调用这个函数时,它工作得很好..
window.onload=function() {
jhon();
};
是否可以使用变量值调用函数?
答案 0 :(得分:3)
此:
window.onload=function() {
window[urlhashed]();
};
包含拼写错误:urlhashed
应为urlhash
window.onload=function() {
window[urlhash]();
};
除此之外,您已在另一个函数内部定义了jhon()
,该函数将其捕获在封闭函数范围内。
如果你想按照预期的方式工作,你应该改变这个:
$(document).ready(function() {
function jhon(){
alert('works');
};
});
更像这样:
$(document).ready(function() {
window.jhon = function(){
alert('works');
};
});
答案 1 :(得分:1)
定义jhon
外的函数$(document).ready
。否则,它将被隐藏,因此无法通过window[function_name]
:
function jhon(){
alert('works');
};
$(document).ready(function() {
var urlhash = document.location.hash;
urlhash = urlhash.replace(/^.*#/, '');
window[urlhash]();
});