Функция JQuery как var, а затем выполнение var на действии - PullRequest
0 голосов
/ 13 апреля 2011

У меня есть функция:

var oneWay = function (){
    $(".one-way").show();
    $(".round-trip").hide();
    $(".multi-stop").hide();
 };

Я хочу вызвать эту функцию в действии, т. Е .:

$(document).ready(function(){
    $("input:radio[value=one-way]").click('oneWay');
});

Но это не работает. Я думаю, что мой синтаксис может быть выключен.

Кроме того, что если я захочу просто выполнить эту функцию, когда DOM будет готов? Было бы это:

$(document).ready(function(){
   oneWay; 
});

Спасибо, Brian

Ответы [ 4 ]

3 голосов
/ 13 апреля 2011

Удаление кавычек должно быть достаточно ...

$(document).ready(function(){
    $("input:radio[value=one-way]").click(oneWay);
});
1 голос
/ 13 апреля 2011

Именно то, что сказал Дэвид Гуж. Далее, чтобы ответить на другой вопрос, вы просто делаете это:

$(document).ready(function(){
    $("input:radio[value=one-way]").click(oneWay); //binds it to the click event
    oneWay(); //executes it now.
});

Помните, что oneWay является ссылкой на функцию (передается как «объект»), тогда как oneWay() выполняет эту функцию немедленно.

0 голосов
/ 13 апреля 2011

Click принимает в качестве аргумента литерал функции, а не строковое имя литерала функции.

См. рабочий пример .

И соответствующая модификация:

$(document).ready(function(){
    $("input:radio[value=one-way]").click(oneWay); // no quotes here, just the variable
});
0 голосов
/ 13 апреля 2011
$(document).ready(function(){
    $("input:radio[value=one-way]").click(oneWay);
});

или

$(document).ready(function(){
    $("input:radio[value=one-way]").click(function(){ oneWay(); });
});

и последний:

$(document).ready(function(){
   //oneWay;
   oneWay(); 
});
...