Javascript 如何在jQuery代码之外执行JS函数
因此,我的问题是-如何在jQuery语句之外执行函数-在函数(id)所在的位置,而不是在jQuery代码中,例如在脚本的末尾。请看以下页面:Javascript 如何在jQuery代码之外执行JS函数,javascript,jquery,Javascript,Jquery,因此,我的问题是-如何在jQuery语句之外执行函数-在函数(id)所在的位置,而不是在jQuery代码中,例如在脚本的末尾。请看以下页面: 在“用法”下,你可以找到答案。简单地说,你不能这么做。或者更具体地说,如果试图访问jQuery代码中定义的任何内部变量,则可能无法获得所需的结果 您不能将自定义函数放在其他对象的上下文中,当然也不能使用自定义函数替换jQuery(或任何其他代码)中另一个函数的某些内部函数。首先,请注意,“jQuery代码”是JavaScript,因此,在语言语法方面,定义
在“用法”下,你可以找到答案。简单地说,你不能这么做。或者更具体地说,如果试图访问jQuery代码中定义的任何内部变量,则可能无法获得所需的结果 您不能将自定义函数放在其他对象的上下文中,当然也不能使用自定义函数替换jQuery(或任何其他代码)中另一个函数的某些内部函数。首先,请注意,“jQuery代码”是JavaScript,因此,在语言语法方面,定义或调用函数的方式没有区别 您的问题不是很清楚,但在一般意义上,如果您声明了一个“普通”JavaScript非jQuery函数:
$(function (){
$( "#example").example({
select: function ( event, ui){
name(id);
}
)};
//now is started non jquery function
function name (id){
document.getElementById(id);
}
});
那么你称之为:
function name(id){
document.getElementById(id);
}
如果函数声明在全局范围内,则可以从代码中的任何位置调用name()
因此,您可以从jQuery中调用它:
name("someid");
// or
name(id); // assuming id is defined somewhere
或者在您的问题中的示例中,这是一个代码片段,它本身不起作用,但可能是某种对象文字的结尾,要调用name()
函数,您需要将单词function
从它前面删除,如下所示:
$("selector").jQueryMethodOfSomeKind(function() {
name("someid");
});
其中id
需要在jQuery代码运行的范围内的某个地方定义。这是错误的!!!
我不知道你的意思:
但请尝试更改代码的顺序:
这是您现在的代码
//some jquery code
select: function ( event, ui){
name(id)
}
});
如果select
方法立即触发,则name
方法不会加载到内存中,
尝试:
您的问题不太清楚,并且代码有错误,什么是
select:{function(id)}
?是否要用自定义函数替换jQuery本机函数?这就是你想做的吗?另外,我还有第二条gideon评论——你的代码有语法错误,不清楚你在问什么。我不太确定我们能否回答你的问题,因为你的语法完全错误。也许你可以编辑和澄清一下?首先,您的jQuery在我看来不太合适(可能只是我),并且您的JavaScript函数没有函数名。看看。我的建议是去试试他们的一些自己尝试的例子。W3SChools并不是最正确的资源,但它对刚开始学习的初学者来说非常好。我写的是fast,是为了展示我的想法,而不是语法。这是我唯一的想法。不是替换,但我希望函数不在选择的位置:因为如果我按照您看到的那样做,我的代码不起作用,但我自己的函数在jQuery代码中。从我在您发布的代码中看到的情况来看,函数的调用name()
在jQuery代码中,而不是在其声明中。所以要么我不明白,要么你不能正确解释你的问题是什么。也许换成波兰语会有帮助;)Muszęwywołaćfunkcję,takżeby sięona wykonała tam gdzie开玩笑函数名()
。Wyobraźsobieże masz zmieniające siękarty。我是masz np。贾基戈·迪瓦。selectem,ustawiasz dla zmienej id,wartośćhrefa-czyli url。Potem masz funkcjęktóra obrabia tego diva-div sięzmienia po zmieniu karty(przypisana wcześniej wartośćhrefa do id)。我选择了我的名字,我的名字是“我爱你,我爱你”。我不知道我是谁,我不知道我叫什么名字,我叫什么名字,我叫什么名字,我叫什么名字,我叫什么名字,select…
。Nawet zakladajac ze jest zdefiniowana,对nazwa“id”jest tak popularna,ze Prawdoponie jest gdzies przedefiniowana w kodzie samego jQuery。我是斯普拉德兹·科莫尼卡特·多斯塔耶兹(Rozzzerzenie do firefoxa)。为了pomoze zdiagnozowac“o co kaman”,所以我必须编写自己的插件?这是唯一的解决方案吗?我认为你正在编写自己的jQuery插件。。。那么你在做什么呢?你更新了你的源代码示例,但是下面的注释不合适。是的,但是如果我这样做,我的代码就不能正常工作。您可以看到,我有一个select:
,所以我使用它来选择项目-在本例中是url(用简单的语言,如果我选择了sth(href),然后用我的函数运行代码(id是div的id)。这一部分很关键“id需要在jQuery代码运行的范围内的某个地方定义”。我还要补充一点,该id可以定义为全局变量,并且它可以工作(前提是从代码运行到窗口对象的任何作用域中都没有变量id
。@WTK-全局变量计为“作用域中的某个地方”.但我仍然不清楚加布里埃尔在问什么,即使现在问题中的代码已经更新-id
在我们展示的代码中根本没有定义,但除此之外,我没有发现加布里埃尔发布的代码有任何错误,除了额外的})代码>最后…同意,他的问题不清楚,毫无疑问:)那是不正确的。在JavaScript中,函数声明被“提升”,也就是说,它们被视为发生在其包含范围的开头,因此答案中的两个版本是等效的。哇,我不知道。。也许是因为我总是声明变量。谢谢,是的。如果将函数声明为var func=function()。
$(function (){
$( "#example").example({
select: function ( event, ui){
name(id);
}
});
function name (id){
document.getElementById(id);
}
});
$(function (){
function name (id){
document.getElementById(id);
}
$( "#example").example({
select: function ( event, ui){
name(id);
}
});
});