Javascript jQuery:如何使用从一个函数到另一个函数的返回值
我有这个jquery脚本。我想将函数Javascript jQuery:如何使用从一个函数到另一个函数的返回值,javascript,jquery,function,Javascript,Jquery,Function,我有这个jquery脚本。我想将函数stockArt()的返回值用于函数prod\u actname()。似乎我遗漏了什么,或者我的实现是错误的。我怎么可能那样做呢 另一种情况是当StockArt()值更改时,活动名称也必须更新 说库存艺术品的颜色是绿色的。活动名称颜色也将更新为绿色,而无需从prod\u actname()函数中选择绿色。它将自动更改,因为StockArt颜色也会更改。它们必须是同一种颜色 jQuery( document ).ready(function($) { $('#p
stockArt()
的返回值用于函数prod\u actname()
。似乎我遗漏了什么,或者我的实现是错误的。我怎么可能那样做呢
另一种情况是当StockArt()
值更改时,活动名称也必须更新
说库存艺术品的颜色是绿色的。活动名称颜色也将更新为绿色,而无需从prod\u actname()
函数中选择绿色。它将自动更改,因为StockArt颜色也会更改。它们必须是同一种颜色
jQuery( document ).ready(function($) {
$('#preview_design').css("background-color","black");
$('#stock_art').change(function() {
var retVal = stockArt();
$('#prod_actname').data("stockData", retVal);
});
$('#prod_actname').change(function() {
var stockData = $('#prod_actname').data("stockData");
prod_actname(stockData);
});
function stockArt()
{
var returnValue = null;
var selectStock_Art = $('#stock_art :selected').val();
if(selectStock_Art == '31145-RB-emb')
{ // green
$('#stockArt_img').removeClass().addClass('stock_art_grbg1');
}
else if(selectStock_Art == '33441-RB-emb1')
{ // yellow
$('#stockArt_img').removeClass().addClass('stock_art_yebg2');
}
else if(selectStock_Art == '33441-RB-emb2')
{ // gold
$('#stockArt_img').removeClass().addClass('stock_art_gobg3');
}
else {
$('#stockArt_img').removeClass();
}
returnValue = selectStock_Art;
return returnValue;
}
function prod_actname(stockData){
var StockArtResult = stockData;
//User stockData as needed
// assign the value to a variable, so you can test to see if it is working
var selectActivity_Name = $('#prod_actname :selected').val();
//alert(selectActivity_Name);
if(selectActivity_Name == 'Baseball')
{
$('#activityName_img').removeClass();
if(stockArtValue == '31145-RB-emb'){
$('#activityName_img').addClass('activity_name_GRbg1');
}
else if(stockArtValue == '33441-RB-emb1'){
$('#activityName_img').addClass('activity_name_YEbg1');
}else if(stockArtValue == '33441-RB-emb2') {
$('#activityName_img').addClass('activity_name_GObg1');
}
}
else if(selectActivity_Name == 'Basketball')
{
$('#activityName_img').removeClass();
if(stockArtValue == '31145-RB-emb'){
$('#activityName_img').addClass('activity_name_GRbg2');
}
else if(stockArtValue == '33441-RB-emb1'){
$('#activityName_img').addClass('activity_name_YEbg2');
}else if(stockArtValue == '33441-RB-emb2') {
$('#activityName_img').addClass('activity_name_GObg2');
}
}
else if(selectActivity_Name == 'Boys Basketball')
{
$('#activityName_img').removeClass();
if(stockArtValue == '31145-RB-emb'){
$('#activityName_img').addClass('activity_name_GRbg3');
}
else if(stockArtValue == '33441-RB-emb1'){
$('#activityName_img').addClass('activity_name_YEbg3');
}else if(stockArtValue == '33441-RB-emb2') {
$('#activityName_img').addClass('activity_name_GObg3');
}
}
else if(selectActivity_Name == 'Girls Basketball')
{
$('#activityName_img').removeClass();
if(selectStock_Art == '31145-RB-emb'){
$('#activityName_img').addClass('activity_name_GRbg4');
}
else if(selectStock_Art == '33441-RB-emb1'){
$('#activityName_img').addClass('activity_name_YEbg4');
}else if(selectStock_Art == '33441-RB-emb2') {
$('#activityName_img').addClass('activity_name_GObg4');
}
}
}
})) 一种方法是将stockArt()的输出存储在变量中,然后将其作为参数传递给prod_actname()。为此,需要修改prod_actname()函数的函数签名以接受参数。像这样的
var stockArtValue;
$('#stock_art').change(function() {
stockArtValue = stockArt();
});
$('#prod_actname').change(function() {
prod_actname(stockArtValue);
});
function prod_actname(val){
....
}
在某些情况下,考虑StalktValk变量确实已经改变可能是有用的。通常可以使用另一个状态变量来指示。或者,如果您知道可能的输入值集,则可以使用该输入值集之外的值对其进行初始化,并对其进行检查。使用
数据
属性存储“#prod_actname”的数据,然后访问它。
你可以利用这一点。
试试这个
您可以将其值保存在属性中
jQuery( document ).ready(function($) {
var StockArtResult = null;
$('#stock_art').change(function() {
StockArtResult = stockArt();
});
$('#prod_actname').change(function() {
if(StockArtResult != null)
{
prod_actname(StockArtResult);
}
});
})) 谢谢@Chandu,这很好用。我还查阅了jQuery.data,无意中发现了另一个场景。当stockart发生更改且活动名称也必须更新时。我尝试了
.data
来实现它,但没有成功。你能帮我个忙吗?我不太明白你在说什么。你能详细说明一下吗?
jQuery( document ).ready(function($) {
var StockArtResult = null;
$('#stock_art').change(function() {
StockArtResult = stockArt();
});
$('#prod_actname').change(function() {
if(StockArtResult != null)
{
prod_actname(StockArtResult);
}
});