jQuery - использование переменной javascript в другом месте - PullRequest
0 голосов
/ 15 декабря 2010

Я боюсь, что этот вопрос может быть чрезвычайно новым уровнем, но я просто рисую пробел.

В функции $(document).ready у меня есть некоторый код DatePicker ...

$('#date-view1').datePicker({
    selectWeek: true,
    inline: true,
    startDate: '01/01/1996'
}).bind('dateSelected', function (e, selectedDate, $td) {
    $('#date1').val(selectedDate.asString());
    var pfb = selectedDate.asString();
});

Часть, с которой я борюсь, это var pfb = selectedDate.asString();

Я хочу использовать переменную pfb далее вниз по моей странице в другой функции под названием showProjects().

Как я могу это сделать? Я попытался объявить переменную внутри и снаружи функции $(document).ready без удачи.

Спасибо

Ответы [ 4 ]

1 голос
/ 15 декабря 2010

Объявите var pfb перед тем, как документ будет готов. Это сделает его доступным в другом месте на странице. В готовом документе вы УСТАНОВИТЕ уже ЗАЯВЛЕННУЮ переменную.

0 голосов
/ 15 декабря 2010

Я не уверен, является ли это проблемной областью, но я бы не стал передавать pfb в качестве параметра в этом событии onclick - я думаю, это может повторно инициализировать pfb или создать новую переменную.

Если вы создаете его глобально (не идеально, но должно работать), тогда вам не нужно передавать pfb как параметр в любом случае.

Кроме того, хорошей практикой является не прикреплять события к таким элементам, кактот.В идеале - и jQuery делает это очень легко - у вас должно быть что-то в вашем $ (документе). Вот так:

$(document).ready(function() {
    $("#myButton").click(function() {
        showProjects();
    });
});

Или даже сократите это до

$(document).ready(function() {
    $("#myButton").click(showProjects());
});

, если вы знаетеэтот showProjects () - единственный вызов, который вы хотите сделать.

0 голосов
/ 15 декабря 2010

Это должно работать, если вы просто отбросите слово var

Объявление переменных без var делает их глобальными.

Вероятно, было бы лучше объявить его перед блоком готовностикак предположил Дэн Рэй, но ты сказал, что тебе было тяжело с этим?Не уверен, почему ты это сделал.

0 голосов
/ 15 декабря 2010

В Javascript вы можете использовать глобальные переменные для хранения значений, которые доступны из любой точки страницы.Одним из многих способов сделать это является установка значения с помощью window.pfb = selectedDate.asString(); и последующий доступ к нему в любом месте с помощью window.pfb

...