我有一个关于在ready函数中使用外部函数的值的问题。也许有一个简单的解决方案,但我还没有找到答案。
我想达到以下几种情况。我有这4个按钮:
<a onmouseover="Tip('content1')" class="">Basic text1</a>
<a onmouseover="Tip('content2')" class="">Basic text2</a>
<a onmouseover="Tip('content3')" class="">Basic text3</a>
<a onmouseover="Tip('content4')" class="">Basic text4</a>
每个超链接都使用不同的参数调用该函数。我把它作为我的JS:
function Tip() {
var content = arguments[0];
$("#results").html("Tip function: "+content);
return content;
}
$(document).ready(function()
{
Tip();
$("#results2").html("Ready function: "+content); // How do I get the content value in this function??
});
现在我想知道是否可以在ready函数中使用函数var content
中的Tip()
变量?
请注意,我知道不再推荐使用内联Javascript代码,但我限制使用它(由于之前的实现)。因此onmouseover
的实施必须保持不变。
示例:CODEPEN
答案 0 :(得分:2)
首先,需要对功能进行一些更改。
dput
直接使用功能。
function Tip(argument) {
var content = argument;
$("#results").html("Tip function: " + content);
return content;
}
或使用局部变量。
$("#results2").html("Ready function: " + Tip('Pass something.'));
或使用全局变量。
$(document).ready(function(){
var content = Tip('Pass something.');
$("#results2").html("Ready function: " + content);
});
答案 1 :(得分:0)
尝试这种方式。
var objTest = {
content : null,
Tip: function(arg) {
this.content = arg;
$("#results").html("Tip function: " + this.content);
},
getContent : function(){
return this.content;
}
}
$(document).ready(function()
{
var content = objTest.getContent();
$("#results2").html("Ready function: "+content); // How do I get the content value in this function??
});
function Tip(argument){
objTest.Tip(argument);
}
<a onmouseover="Tip('content1')" class="">Basic text1</a>
<a onmouseover="Tip('content2')" class="">Basic text2</a>
<a onmouseover="Tip('content3')" class="">Basic text3</a>
<a onmouseover="Tip('content4')" class="">Basic text4</a>
答案 2 :(得分:0)
嗯,这是我通常使用.data()
每当您希望存储变量的值时,请将其存储在:
$("body").data("my_content", content); //Setter
&安培;同样检索:
$("body").data("my_content"); //Getter
有许多代码技术,但我更喜欢这个,因为内容在DOM中不可见,因此可用于临时操作