2013-05-21 3 views
0

Я новичок в jquery, так что это может показаться простым, но я не вижу трюка: p
Я использую jquery 1.2.6 (и могу 't обновить его: /), поэтому я использую плагин livequery.

Контекст - это просто обновление корзины в эспрессе.
Проблема в том, что я не получаю значение, которое я хочу для «myid» в update_it.php.
- В примере 1 (см. Код ниже) он работает! Вызов сделан, и я получил хорошее значение в update_it.php для «myid». Но он жестко запрограммирован, я хочу, чтобы он был общим (см. Пример 2).
- С примером 2 он не работает :(настороже работает, вызов работает, но я не получаю никакого значения для «MyId»

Вот мой JavaScript:

$(document).ready(function() { 
    function update_it() { 
     $.ajax({ 
      type: "POST", 
      url: "./update_it.php", 
      dataType: "json", 
      data: "myid="+$(this).val(), 
      success: function(msg){ 
       $("div#cart-full").html(msg.fullcart); 
       $("div#cart").html(msg.mincart); 
      }, 
      error : function(xhr, desc, e) { 
       alert("ko - " + xhr.status); 
      } 
     }); 
    } 

    // Example 1 
    $("#mycheckbox_1").livequery("click", update_it); 

    // Example 2 
    $("input:checkbox[id^=mycheckbox_]").each(function(){ 
     $(this).livequery("click", update_it); 
    }); 

}); 

Спасибо за ! любая помощь

ответ

1

пример для второго выбора на странице Jquery включает второй набор кавычек: JQuery («[атрибут =„значение“]»)

пытаются $ ("Вход: Флажок [ID = 'mycheckbox _']") каждая (функция() {

EDIT:.

В этом случае, попробуйте "ON" ключевое слово в следующем примере вместо livejquery. http://jsfiddle.net/4LaQX/2/

$(function() { 
    $(document).ready(function(){ 
     $("[id^='hoverme_']").each(function() { 
      $(this).on("click", listen); 
     }); 
    }); 

    function listen(){ 
     alert($(this).html()); 
    } 
}); 

И в случае Jquery 1.2.6, щелчок() Ключевое слово

http://jsfiddle.net/4LaQX/5/

$ (это) .click (doSomethingFunc);


EDIT

$(document).ready(function() { 


    // Example 2 
    $("input:checkbox[id^=mycheckbox_]").click(update_it); 


}); 
function update_it() { 
      $.ajax({ 
       type: "POST", 
       url: "./update_it.php", 
       dataType: "json", 
       data: "myid="+$(this).val(), 
       success: function(msg){ 
        $("div#cart-full").html(msg.fullcart); 
        $("div#cart").html(msg.mincart); 
        $("input:checkbox[id^=mycheckbox_]").unbind("click"); 
        $("input:checkbox[id^=mycheckbox_]").bind("click"); 
       }, 
       error : function(xhr, desc, e) { 
        alert("ko - " + xhr.status); 
       } 
      }); 
     } 
+0

что не является обязательным, если вы не поставить кавычки внутри него работает отлично, а также. – Jai

+0

Извините, я не вижу, где ваше сообщение решает мою проблему. Цитаты действительно необязательны. Я не могу использовать on(), потому что он добавлен в jquery 1.7. И я использую livequery, потому что не могу использовать juste click(), поскольку он больше не будет работать, когда html будет заменен. – Pontek

+0

@Pontek .Click() доступен в JQuery 1.0. Вызовите .Bind() и .Unbind() внутри функции после вызова ajax, чтобы переподключить .Click() к новым объектам в html. –