2017-09-17 15 views
0

我做了一個jQuery函數,但即時通過一些變量的麻煩。我無法得到#op1的值到輸入,在#z1它顯示「我」而不是「開始」,並且計數器參數沒有加起來,它只顯示「0」,在點擊事件中它被累加起來函數變量在jQuery中不起作用?

javascript代碼:

$(function() { 

$(function() { 
var inpreco = []; 
var altpreco = []; 
var cpcounter9 = 0; 

$(".opcaopreco").click(function() { 
    SuperF(this, "#preco", "inpreco", "altpreco", "cpvalor", "cpindex", 
     "cpactive", "cpcounter9", "preco"); 
}); 

function SuperF(element, input, inpArray, secArray, inpValue, secIndex, 
inpActive, 
    counter, msqlip) { 

    var inpValue = $("#" + element.id).val(); 
    var secIndex = $("#" + element.id).data(secIndex); 
    var inpActive = $("#" + element.id).data(inpActive); 

    if (inpArray[0] == "") { 
     counter++; 
     $("#" + element.id + "l").addClass("activa"); 
     $(element).data(inpActive, "primary"); 
     inpArray[0] = (inpValue); 
     input.val(inpArray[0]); 
    } 

    $("#z1").html(inpArray[0]); 
    $("#z2").html(counter); 
    $("#z3").html(cpcounter9); 
}; 
}); 

}); 

的html代碼:

<input id="preco" type="text" name="preco" value=''><br><br> 

    <div id="op1l" class="input"> 
     <input type="checkbox" id="op1" class="opcaopreco" value="Start" data-cpindex="1" data-cpactivo=""> 
     <label for="op1"></label> 
     <span class="itext">Test</span> 
    </div> 

    <ul id="z"> 
     <li id="z1">z1</li>   
     <li id="z2">z2</li> 
     <li id="z3">z3</li> 

    </ul> 

回答

1

您正在傳遞的字符串爲您的參數,而不是要素所以,當你索引參數你得到的第一個字符字符串。

您需要使用字符串作爲選擇讓他們的相關元素,然後通過他們的返回值到您的函數:

// use the strings to make a selection 
var preco = $('#preco'); 
var inpreco = $('inpreco'); 
// etc. 

// pass the results of each selection into your function 
SuperF(this, preco, inpreco, ...) 

爲此,您可以在線以及:同樣

SuperF(this, $("#preco"), $("inpreco"), ...) 

,你有其他變量你試圖通過爲字符串,而不是按名稱傳遞它們是這樣的:

SuperF(this, $('#preco'), inpreco, altpreco, cpvalor, cpindex, cpactive, cpcounter9, preco); 

那是你的功能不能訪問大部分相提並論的原因以及爲什麼你的櫃檯保持在0

+0

它比那更復雜。 inpArray和secArray是數組,我希望能夠在函數中命名這些數組。另外,我如何解決櫃檯的問題?它總是返回0; – Adato

+0

@Adato我再次更新了答案,以解釋您需要將變量,而不是變量名稱的字符串傳遞到函數中。 – Soviut

相關問題