JQuery функции в массиве - PullRequest
       17

JQuery функции в массиве

0 голосов
/ 28 октября 2009

У меня небольшая проблема с функциями Javascript.

Это может быть немного в моем коде, но я не уверен, что кто-то в Stackoverflow знает, кто это знает!

Хорошо, сначала у меня есть сеанс PHP, который я использую для сохранения идентификаторов моего изображения

Тогда у меня есть страница, которая показывает 5 изображений одновременно с функцией JQuery Click, чтобы просмотреть мои изображения

Функции, которые я использую:

$(document).ready(function() {    <---- i click the arrow
  $("#imgnext").click(
 function(){

    if(session_set("session_next")== true){    <-------- calling session_set()

     img_set_1("img1_hover","1","next","cie_name");  <--------Calling img_set_1()
     img_set_2("img2_hover","2","next","cie_name");  <------same for all 5 imgs
     img_set_3("img3_hover","3","next","cie_name");
     img_set_4("img4_hover","4","next","cie_name");
     img_set_5("img5_hover","5","next","cie_name");

                                   }

                   }

  );

  $("#imgprev").click(
 function(){

      if(session_set("session_previous")== true){
         img_set_1("img1_hover","1","prev","cie_name");
         img_set_2("img2_hover","2","prev","cie_name");
         img_set_3("img3_hover","3","prev","cie_name");
         img_set_4("img4_hover","4","prev","cie_name");
         img_set_5("img5_hover","5","prev","cie_name");
                                     }

         }

  );


});

Условие if состояло в том, чтобы удостовериться, что идентификатор обновлен.

Код работает, но есть ловушка.

Если я нажму на стрелки, чтобы ускорить мою сессию, img id будет испорчен.

Например, я установил для img id значение 10.

img_set_1("img1_hover","1","next","cie_name");

возвращает правильный идентификатор img в поле, которое равно 10 + 1, используйте его в div img1_hover

и у меня есть 5 таких дел. поэтому каждый раз, когда я вижу 5 imgs, я увеличиваю id сеанса img на 5, чтобы я мог видеть 5 следующих imgs.

Поскольку я выполнил условие, чтобы убедиться, что мой прирост идентификатора сеанса возвращает значение true, я ожидал, что идентификаторы img будут одинаковыми. Но нет!

если я нажму на стрелки, чтобы быстро идентифицировать сессию на странице

У кого-нибудь есть идеи?

Функция сеанса set ()

function session_set(action) {
    var xhr1 = getXMLHttpRequest();
    xhr1.onreadystatechange = function() {
        if (xhr1.readyState == 4 && (xhr1.status == 200 || xhr1.status == 0)) {
            document.getElementById(box).innerHTML=xhr1.responseText;

        }
    };


    var sVar7 = encodeURIComponent(action);

    xhr1.open("GET", "ajax.php?variable7=" + sVar7, true);
    xhr1.send(null);
        return true;
}

Теперь идентификатор сессии установлен. if action = 'session_next' i увеличить на 5, иначе его предыдущее с минус 5.

функция img set x ():

   function img_set_1(box_1,sessionid,action,cie) {
    var xhr1 = getXMLHttpRequest();
    xhr1.onreadystatechange = function() {
        if (xhr1.readyState == 4 && (xhr1.status == 200 || xhr1.status == 0)) {
            document.getElementById(box_1).innerHTML=xhr1.responseText;
        }
    };
    var sVar1 = box_1;
    var sVar6 = sessionid;
    var sVar7 = encodeURIComponent(action);
    var sVar8 = encodeURIComponent(cie);
    xhr1.open("GET", "ajax.php?variable1=" + sVar1 + "&variable6=" + sVar6 + "&variable7=" + sVar7 + "&variable8=" + sVar8, true);
    xhr1.send(null); 
    return true;
} 

Эта функция возвращает мне идентификатор сессии + позицию img. Я вызываю 5 функций, чтобы изменить мои 5 изображений.

Ответы [ 2 ]

0 голосов
/ 28 октября 2009

я понял !!!!

Я вызывал все функции в любое время. Теперь я вызываю функции, когда я меняю идентификатор сессии

стоит вызвать set_session (), а затем мою другую функцию.

Я вызвал set_session (), переместил в него функцию 5 img и вызвал их в режиме готовности.

швы для работы.

0 голосов
/ 28 октября 2009

Общая идея:

  • Объявите глобальную переменную, присвойте ей значение true в вашем событии клика.
  • Установите значение false, когда ваша сессия была обновлена ​​(когда вы получили ответ?).
  • Проверьте глобальную переменную в начале события щелчка. Если это правда, отмените событие click (вернув false).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...