2015-12-14 8 views
0
$(document).ready(function(){ 
var zone; //ZONE TO PASS THROUGH HTTP POST 
var NEcount; //COUNTER HOW MUCH NOT-EDITBALE ZONES USER MUST CONFIGURE 
NEcount = 5; //IF I NEED 20(ZONES = CELLS OF MAP) USER MUST CONFIGURE 25-20=5 NOT EDITABLE ZONE FOR EXAMPLE(I'LL TAKE THIS VALUE FROM HTML CONTENT AND CALCULATED WITH JSP/JAVA) 

    $('body div#presentation div#map a').click(function(){ 
     zone = $(this).attr('href'); 
     zone = zone.substr(5);//i generate html code with jsp/java function href is like ="#area1" 
    }); 

    $('body div#presentation div#map a p').click 
    (
     function() 
     { 
      if($(this).attr('class') === "white") 
      { 
       $.post("MSservlet", {postsend:"updateMap",attrib:"editable",elem:"0",cond:zone});//Servlet call a PreparedStatement Query that update editable field to 0 where zone field is equal to var zone 
        NEcount--; 
        $(this).attr('class','gray'); 
        if(NEcount <= 0) 
        { 
         $('#NEobb').html("HTML BUTTON THAT LINK TO END CONFIGURATION PAGE"); 

        } 
        else 
        $('#NEobb').text("count = "+NEcount); 
       } 
      else if($(this).attr('class') === "gray") 
       { 
       $.post("MSservlet", {postsend:"updateMap",attrib:"editable",elem:"1",cond:zone}); 
        NEcount++; 
        $(this).attr('class','white'); 
        if(NEconta <= 0) 
        { 
         $('#NEobb').html("HTML BUTTON IMHO"); //LINK TO END CONFIGURATION OF MAP        
        } 
        else 
        $('#NEobb').text("count = "+NEcount); 
       } 
     } 
); 

}); 

У меня проблема с этими сообщениями jQuery.jQuery: Post Не работает, когда я нажимаю первый и последний раз

У меня есть интерактивная карта (простой) продукта с страницы конфигурации. Страница конфигурации спросите меня, сколько области мне нужно. С поля формы, через это число, которое я передаю в сервлет, веб-приложение генерирует новую страницу с картой (представлена ​​с матрицей Bean) и как это:

(Map areas is like <a href="#areaNUMBERGENERATED"><p class="color"></p></a>) 

С JQuery изменения р цвета нормально, но первый пост не работает (первый клик) , потому что передайте нулевую зону (я не знаю почему).

И за каждый клик после второго у меня такая ситуация (я итальянский и это трудно объяснить):

  • Я щелкнул Area1: первую зону после отправки = NULL в сервлет (DB отказывается обновление) , цвет поседел от белого

  • Reclicked area1: второй после отправки зоны = 1 (обновление работает на БД, как правило, цвет снова повернулся к белому)

  • Я снова нажал Area1: третий пост работает нормально зона = 1 и установите для редактирования значение 0 на DB

  • Я нажал AREA2: после отправки зоны = 1 (пропуск ранее зоны (я уверен))

  • Я нажал AREA3: после отправки зоны = 2 (то есть проблема)

  • Я снова щелкнул область 3: почтовая зона отправки = 2 и обновление нормально как должно быть

  • Я снова щелкнул область3: отправить зону отправки = 2 и нормально обновить, как должно быть.

Как это исправить? и, пожалуйста, дайте мне знать, почему это тоже не работает.

Спасибо за консультацию.

Итальянский студент.

UPDATE ПОСТ:

У меня есть 2 кнопки мыши функции на одном объекте.

Поэтому, когда я нажимаю на область/зону карты, сообщение не может принять во времени зону var (возможно).

Или

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

у меня нет еще решения.

Предложения?

+0

OMG. Когда я нажимаю на зону карты, у меня есть 2 события, сработанные вместе. с .click() action/функция. Так сообщение не может принять зону во времени (зона варна еще не установлена?) Когда я редактировал свой вопрос, я просто понял, почему это не работает. –

+1

Если вы поняли это, вы должны рассмотреть возможность публикации в качестве ответа, чтобы помочь будущим посетителям. –

+0

Но у меня еще нет решения, ожидающего ответов экспертов. Да, конечно. –

ответ

0

Спасибо в любом случае.

Я просто закодировал рабочее решение.

Объяснение: Я удалил second.click блок действий() (который содержит сообщение), потому что было проведенным перед тем функции, что установка зоны уага variable._

Так что я переехал, если/иначе, если блок на первый .click() код действия.

В HTML у меня есть N-зоны, как это:

<!--grigio = gray and bianco = white(italian translation) --> 
<div id="map"> 
<a href="#area1"><p class="grigio"></p></a> 
<a href="#area2"><p class="grigio"></p></a> 
<a href="#area3"><p class="grigio"></p></a> 
<a href="#area4"><p class="grigio"></p></a> 
<a href="#area5"><p class="grigio"></p></a> 
<br> 
<a href="#area6"><p class="grigio"></p></a> 
<a href="#area7"><p class="grigio"></p></a> 
<a href="#area8"><p class="grigio"></p></a> 
<a href="#area9"><p class="grigio"></p></a> 
<a href="#area10"><p class="grigio"></p></a> 
<br> 
<a href="#area11"><p class="grigio"></p></a> 
<a href="#area12"><p class="grigio"></p></a> 
<a href="#area13"><p class="grigio"></p></a> 
<a href="#area14"><p class="bianco"></p></a> 
<a href="#area15"><p class="bianco"></p></a> 
<br> 
<a href="#area16"><p class="bianco"></p></a> 
<a href="#area17"><p class="bianco"></p></a> 
<a href="#area18"><p class="bianco"></p></a> 
<a href="#area19"><p class="bianco"></p></a> 
<a href="#area20"><p class="bianco"></p></a> 
<br> 
<a href="#area21"><p class="bianco"></p></a> 
<a href="#area22"><p class="bianco"></p></a> 
<a href="#area23"><p class="bianco"></p></a> 
<a href="#area24"><p class="bianco"></p></a> 
<a href="#area25"><p class="bianco"></p></a> 
<br> 

</div> 

для отборного внутри щелкнули объекта я использовал $ (это) .children ('р') атр ('класс')

.
$(document).ready(function(){ 
    var zone; //ZONA DA PASSARE ATTRAVERSO HTTP POST 
    var NEcount; //NON EDITABILI OBBLIGATORI DA INSERIRE 
    NEcount = 5; // INIZIALIZZARE CALCOLANDO LE NE DA INSERIRE SE 21 = 4; 

    $('body div#presentation div#map a').click(function(){ 
        zone = $(this).attr('href'); 
      zone = zone.substr(5); 

      if($(this).children('p').attr('class') === "white")//I added children for select p of the clicked object 
        { 
        $.post("MSservlet", {postsend:"updateMap",attrib:"editabile",elem:"0",cond:zone}); 
         NEcount--; 
         $(this).children('p').attr('class','gray');//I added .children('p') to select class attr and change color 
         if(NEcount <= 0) 
         { 
          $('#NEobb').html("HTML BOTTON THAT LINK TO THE END OF CONFIGURATION"); 

         } 
         else 
         $('#NEobb').text("counter = "+NEcount); 
        } 
       else if($(this).children('p').attr('class') === "gray")//Same read comments up 
        { 
        $.post("MSservlet", {postsend:"updateMap",attrib:"editabile",elem:"1",cond:zone}); 
         NEcount++; 
         $(this).children('p').attr('class','white'); 
         if(NEcount <= 0) 
         { 
          $('#NEobb').html("HTML BUTTON THAT LINK TO END OF CONFIGURATION JUST IN CASE COUNT IS EQUAL 0"); //bottone che reindirizza alla pagina di fine configurazione. 

         } 
         else 
         $('#NEobb').text("counter = "+NEcount); 
        } 

     }); 

}); 

Я надеюсь, что это поможет кому-то.

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

  • Нет связанных вопросов^_^