2014-02-12 4 views
0

У меня есть эта функция:Как передать параметры функции «на лету» в JavaScript?

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

} 
divResize.myDiv(100,400); 

Как бы я получить последние аргументы для ввода полученных динамически от пользователя говорит от формы или какого-либо другого интерактивного элемента? Что делать, если эти цифры еще не предопределены, и я хочу, чтобы они могли изменить что-то визуальное.

+0

функция вызова внутри любого вида обработчика, связанного с событием взаимодействия с пользователем. Это действительно действительно основной вопрос, вам лучше прочитать некоторые тутологи –

+0

Можете ли вы показать быстрый пример того, что вы имеете в виду. Я понимаю, но нуждаюсь в визуальном ... Это не для проекта, который просто пытается получить мои шаблоны правильно и посмотреть, есть ли другие варианты, которые я не рассматривал. – SunRhythms

+0

Возможно, вы могли бы показать варианты, которые вы уже рассмотрели ... –

ответ

0

Вы должны использовать входы (возможно, с идентификатором), а затем извлечь значения, используя 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); 
} 

Предоставленный, в реальной жизни вы, вероятно, хотите, чтобы проверить входы не empty & подтвердите, что они являются номерами, прежде чем передавать их в вашу функцию и т. д. Вам, вероятно, также понадобится более зрелая переменная &, чем я использовал.

Примечание: я набрал этот код прямо здесь & не проверял, поэтому в нем могут быть опечатки/глупые ошибки.

+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(); 

Чем вы можете использовать width и height для изменения размера DIV.

Вы также можете запустить функцию изменения размера.

$("#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

ой, тогда другие ответы - именно то, что вам нужно. Они оба действительно хороши. –

Смежные вопросы