Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не работает обработка ajax 
:(
    Опции темы
baryshkov
Дата 5.11.2012, 09:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 31.10.2012

Репутация: нет
Всего: нет



Здравствуйте, на странице вставляю данные черех ajax 
Код

$("#resp_form_"+obj_id).html(html);

Но после того как на странице подгружаеться моя форма, ее обработки ajax не обрабатывают. Например у меня там есть
Код

jQuery("#productRate").click

Не отрабатывает. Все обработка ajax прописана в главной странице. В чем может быть проблема?
PM MAIL   Вверх
ksnk
Дата 5.11.2012, 09:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



Причина в том, сто click выставляется в тот момент, когда элемента #productRate еще нет или его в результате запроса заменят на другой.

Решение
Код

$(document).on('click','#productRate', function(){...})



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
baryshkov
Дата 5.11.2012, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 31.10.2012

Репутация: нет
Всего: нет



Цитата(ksnk @ 5.11.2012,  09:58)
Причина в том, сто click выставляется в тот момент, когда элемента #productRate еще нет или его в результате запроса заменят на другой.

Решение
Код

$(document).on('click','#productRate', function(){...})

А по мимо события onclick какие еще заранее не отрабатывают? Хотя наверно все события несуществующего объекта!

Это сообщение отредактировал(а) baryshkov - 5.11.2012, 12:29
PM MAIL   Вверх
ksnk
Дата 5.11.2012, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



Цитата(baryshkov @  5.11.2012,  12:19 Найти цитируемый пост)
Хотя наверно все события несуществующего объекта!

 smile 


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
baryshkov
Дата 6.11.2012, 07:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 31.10.2012

Репутация: нет
Всего: нет



Цитата(ksnk @ 5.11.2012,  12:57)
Цитата(baryshkov @  5.11.2012,  12:19 Найти цитируемый пост)
Хотя наверно все события несуществующего объекта!

 smile

А как быть с такой конструкцией?
Код

jQuery(document).ready(function($) {
  $('a[rel*=facebox]').facebox({
    loadingImage : '/images/indicator.gif',
    closeImage   : '/images/close_grey.png'
  })
})

PM MAIL   Вверх
Aliance
Дата 6.11.2012, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



baryshkov, если она не работает (хотя по хорошему, должна), то примерно так:
Код

jQuery(document).ready(function($) {
  initFacebox();

  $.post('url', {}, function() {
    $("#resp_form_"+obj_id).html(html);
    initFacebox();
  });
})

function initFacebox() {
  $('a[rel*=facebox]').facebox({
    loadingImage : '/images/indicator.gif',
    closeImage   : '/images/close_grey.png'
  })
}

PM MAIL WWW ICQ Skype   Вверх
baryshkov
Дата 6.11.2012, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 31.10.2012

Репутация: нет
Всего: нет



Цитата(Aliance @ 6.11.2012,  10:39)
baryshkov, если она не работает (хотя по хорошему, должна), то примерно так:
Код

jQuery(document).ready(function($) {
  initFacebox();

  $.post('url', {}, function() {
    $("#resp_form_"+obj_id).html(html);
    initFacebox();
  });
})

function initFacebox() {
  $('a[rel*=facebox]').facebox({
    loadingImage : '/images/indicator.gif',
    closeImage   : '/images/close_grey.png'
  })
}

Да не отрабатывает когда в див подгружаю. А если код сразу на страницу вывести а не ajax подгружать то работает!

А ваш код работает ))))

Это сообщение отредактировал(а) baryshkov - 6.11.2012, 11:13
PM MAIL   Вверх
baryshkov
Дата 13.11.2012, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 31.10.2012

Репутация: нет
Всего: нет



Цитата(ksnk @ 5.11.2012,  09:58)
Причина в том, сто click выставляется в тот момент, когда элемента #productRate еще нет или его в результате запроса заменят на другой.

Решение
Код

$(document).on('click','#productRate', function(){...})

Что то так не получаеться ((((
PM MAIL   Вверх
Aliance
Дата 13.11.2012, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Код

alert( $.fn.jquery )

Что выводит?
PM MAIL WWW ICQ Skype   Вверх
baryshkov
Дата 13.11.2012, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 31.10.2012

Репутация: нет
Всего: нет



Цитата(baryshkov @ 13.11.2012,  14:34)
Цитата(ksnk @ 5.11.2012,  09:58)
Причина в том, сто click выставляется в тот момент, когда элемента #productRate еще нет или его в результате запроса заменят на другой.

Решение
Код

$(document).on('click','#productRate', function(){...})

Что то так не получаеться ((((

т.е. каким образом так повешать событие hover - при наведение и выходе???
PM MAIL   Вверх
Aliance
Дата 13.11.2012, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Такого события нет. Есть события mouseover/mouseout, а есть jQuery метод hover, который биндит из оба. Уточни что тебе нужно получить.
PM MAIL WWW ICQ Skype   Вверх
baryshkov
Дата 13.11.2012, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 31.10.2012

Репутация: нет
Всего: нет



Цитата(Aliance @ 13.11.2012,  14:41)
Код

alert( $.fn.jquery )

Что выводит?

1.4.4
PM MAIL   Вверх
Aliance
Дата 13.11.2012, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Если бы ты зашел сперва в документацию, то увидел бы, что эта фича введена в версии 1.7
Цитата

version added: 1.7


Я бы конечно рекомендовал обновится, на дворе уже 1.8, а ты все еще в динозаврах. Но если слишком много зависимостей, то можно заменить on на delegate
Цитата

 As of jQuery 1.7, the .on() method provides all functionality required for attaching event handlers. For help in converting from older jQuery event methods, see .bind(), .delegate(), and .live().

PM MAIL WWW ICQ Skype   Вверх
baryshkov
Дата 13.11.2012, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 31.10.2012

Репутация: нет
Всего: нет



Цитата(Aliance @ 13.11.2012,  15:10)
Если бы ты зашел сперва в документацию, то увидел бы, что эта фича введена в версии 1.7
Цитата

version added: 1.7


Я бы конечно рекомендовал обновится, на дворе уже 1.8, а ты все еще в динозаврах. Но если слишком много зависимостей, то можно заменить on на delegate
Цитата

 As of jQuery 1.7, the .on() method provides all functionality required for attaching event handlers. For help in converting from older jQuery event methods, see .bind(), .delegate(), and .live().

Спасибо!
PM MAIL   Вверх
baryshkov
Дата 13.11.2012, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 31.10.2012

Репутация: нет
Всего: нет



Цитата(Aliance @ 13.11.2012,  15:01)
Такого события нет. Есть события mouseover/mouseout, а есть jQuery метод hover, который биндит из оба. Уточни что тебе нужно получить.

После загрузки в див формы, хочу сделать оценку товара. рисую 5 звез, хочу что бы по ним двигали и они красились. Нажал и остановились.
Но что то мерчает сильно курсор
Код

#productRate {background:url(../images/stars.png);width:150px;height:30px;position:relative;}
#productRate div {background:url(../images/stars.png) left bottom;width:0; height: 100%; position: absolute;    top: 0;    left: 0; z-index: 1;cursor: pointer;}
#productRate span {display:block;    height: 100%;position:absolute;top:0;left: 0;z-index: 2;background: url(../images/stars.png)left center;width:0;cursor:pointer;}
.objRate_black{background:url(../images/stars.png);width:150px;height:30px;position: relative;}
.objRate{background:url(../images/stars.png) left bottom;width:0;height:100%;position: absolute;top:0;left:0;z-index:1;}

$(document).on('submit', "#form_resp_ajax", function(ev){
    
    var old_text = $("#form_resp_ajax .btn").html();
    $("#form_resp_ajax .btn").html(img1_loading);    
    $("#form_resp_ajax .btn").addClass("disabled").attr("disabled",true);            

    $.ajax({
              type: "post", 
              url: "/java/ajax/add_response.html", 
              data:$("#form_resp_ajax").serialize(), 
              success:function(html){        
                     $("#facebox_content").html(html);
                     alert(html);
                }
              
              , 
              complete:function(html){   
                    $("#form_resp_ajax .btn").html(old_text);    
                    $("#form_resp_ajax .btn").addClass("disabled").attr("disabled",false);    
              }
    });

    ev.preventDefault();
});
$(document).on("mouseenter", "#productRate",
    function(e){ 
        $(this).append("<span></span>");
    }
);
$(document).on("mouseover", "#productRate",
    function(e){ 
    

        if (!e) e = window.event;
      if (e.pageX){
            x = e.pageX;
             } else if (e.clientX){
             x = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft;
          
         }
         var posLeft = 0;
         var obj = this;
        while (obj.offsetParent)
         {
             posLeft += obj.offsetLeft;
             obj = obj.offsetParent;
         }
         var offsetX = x-posLeft,
             modOffsetX = 5*offsetX%this.offsetWidth; 
             rating = parseInt(5*offsetX/this.offsetWidth);
    
         if(modOffsetX > 0) rating+=1;
         
         $(this).find("span").eq(0).css("width",rating*30+"px"); 
            $("#rating-label_0").css("display","none");
            for (i=1;i<=5;i++){
                $("#rating-label_"+i).css("display","none");
            }
            $("#rating-label_"+rating).css("display","block");
    }
);
$(document).on("mouseout", "#productRate", function()
    { 
    
        $(this).find("span").remove();
        for (i=1;i<=5;i++){
            $("#rating-label_"+i).css("display","none");
        }
        $("#rating-label_0").css("display","block");
    }
);
$(document).on("click","#productRate", function(){ 
    
        get_obj("o_resp").value = rating;
     $(this).find("div").eq(0).css("width",rating*30+"px");
        $("#rating-label_0").css("display","none");
        return false;
}); 

<div id="productRate">
                    <div id="select_stars" ></div>
                </div>


До того как было Hover все хорошо работало ((((
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0619 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.