Нужна помощь с передачей переменных между двумя функциями в jQuery - PullRequest
0 голосов
/ 28 ноября 2010

Это должен быть простой вопрос для многих из вас!

Справочная информация: У меня возникают трудности при передаче переменной между двумя функциями в javascript с использованием библиотеки jQuery.

Ниже приведен скрипт, над которым я работаю, который динамически загружает контент на основе индекса workSnippet. Верхняя функция работает. Вторая функция не работает. Оповещения не выдается, поскольку переменная portfolioCount, по-видимому, не существует.

Мой вопрос: Как передать переменную между двумя функциями, чтобы при нажатии кнопки «Далее» я мог предупреждать портфолиоCount?

Спасибо

// set global variable 
var portfolioCount = 0;

// begin on document ready
       $(document).ready(function() {
 // Return the value of the index of workSnippet when clicked and load related content

$(".workSnippet").click(function () {

    //set variable portfolioCount based on index

    var portfolioCount = $(".workSnippet").index(this);

    //load content based on portfolioCount

    $('#work #cycle' + portfolioCount).load("ajax-content/ajax-content.php #portfolioImage" + portfolioCount);

    // when loaded, run animation functions 

    $("#work").ajaxComplete(function(){

        setTimeout(invokeMultipleCycle, 200);

        showWork();
        $('#work').cycle(portfolioCount);
        $('#blurbs').cycle(portfolioCount);

        return portfolioCount;
    });

});

// return cycle value when 'next' is clicked

$('#next').click(function () {

    alert(portfolioCount);
});

});

Ответы [ 4 ]

2 голосов
/ 28 ноября 2010

Объявите глобальный таким образом, за пределами функций:

var portfolioCount=0;

Затем удалите ключевое слово 'var' из этой строки:

var portfolioCount = $(".workSnippet").index(this);

/ sim

0 голосов
/ 28 ноября 2010

вы можете сохранить его в глобальной переменной javascript

0 голосов
/ 28 ноября 2010

вы объявляете портфельCount дважды. portfolioCount внутри обратного вызова $ ('. worksnippet'). click () - это совершенно другая переменная внутри области действия обратного вызова. попробуйте удалить ключевое слово 'var' из назначения портфеля вызовов для обратного вызова клика, и оно должно использовать глобальное.

0 голосов
/ 28 ноября 2010

Объявите portfolioCount как глобальную переменную.
В качестве альтернативы

  $('#next').click(function () {
        var item = $(".workSnippet");
        var portfolioCount=$(".workSnippet").index(item);
        alert(portfolioCount);
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...