2014-02-12 67 views
0

我有這樣的功能:如何將參數傳遞給JavaScript中的函數?

divResize = { myDiv:function(width, height) 
{...} 

} 
divResize.myDiv(100,400); 

我怎麼會得到後者的參數是由用戶輸入動態地收到一個形式或其他一些互動元素說呢?如果這些數字還沒有預先確定,我希望他們能夠改變視覺效果會怎麼樣?

+0

調用綁定到用戶交互事件的任何類型的處理函數內的函數。這真的是一個基本問題,你最好去看一些導師 –

+0

你能舉一個你的意思的例子嗎?我明白,但需要一個視覺...它不是一個項目只是試圖讓我的模式正確,看看是否有其他選項,我沒有考慮。 – SunRhythms

+0

也許你可以顯示你已經考慮過的選項... –

回答

0

你會使用輸入(可能帶有一個id),然後使用諸如document.getElementById("input1").value之類的東西提取值以傳入該函數。

HTML可能看起來像:

<input id="input1" type="number" /> 
<input id="input2" type="number" /> 
<button onclick="mycode()">click</button> 

然後JS會沿着

function mycode(){ 
    var a = document.getElementById("input1").value; 
    var b = document.getElementById("input2").value; 
    divResize.myDiv(a,b); 
} 

誠然線的東西,在現實生活中你可能要檢查的輸入是不是空&在將它們傳遞給你的函數之前確認它們是數字。你可能還想要比我用過的更加清晰的變量&函數名稱。

注意:我直接輸入這個代碼到這裏&還沒有測試過,所以可能會有拼寫錯誤/ daft錯誤。

+0

你的函數在這種情況下沒有參數,我需要它們嗎? – SunRhythms

+0

不應該這樣做,在上面的示例中,需要的值是從HTML輸入中提取的,因此不需要提供給函數本身。 (閱讀其他一些答案,我開始認爲我可能誤解了你的問題)。 – Carl

+0

卡爾他混合它...他提供了一個迂迴的解決方案,同時留下了預期的論點。 (我正在猜測)。 – SunRhythms

0

如果您希望用戶可以控制尺寸,則可以添加這些輸入字段。

<input type="text" id="width"> 
<input type="text" id="height"> 

而不是將它添加到你的JavaScript功能

var width = $("#width").val(); 
var height = $("#height").val(); 

比你可以使用widthheight用於調整股利。

你也可以像調整大小功能一樣。

$("#width").change(function(){ 
    //your function code 
    $("#myDivToResize").css("width",$(this).val()); 
}); 
0

使用參數變量,如所見here

例如:

function a(){ 
    console.log(arguments); 
} 

a(1,2,3,"foo","bar"); 

回報

[1,2,3,"foo","bar"] 

,所以你可以很容易地獲得通過參數[0]第一個參數,等等。

+0

我明白你在說什麼,但我試圖從未知中輸入更多的參數。想想它,就像我從可以鍵入任何內容的用戶那裏獲得這個數字一樣。我如何得到他們輸入的內容以成爲()的參數? – SunRhythms

+0

哦,那麼其他答案正是你所需要的。他們都很好。 –

相關問題