2016-08-17 3 views
0

Я хотел бы запустить функцию, когда заряжается div (изображение), я пробовал это с помощью html(). Length и onChange, но onChange работает только при загрузке страницы, спасибо:JQuery onChange div content

Мой код:

if (($("#zv1").html().length > 0) && ($("#zv1").change())){ 
      //ion.sound.play("water_droplet_2"); 
      alert("sound"); 
     } 
     if (($("#zv2").html().length > 0)) { 
      //ion.sound.play("water_droplet_2"); 
      alert("sound"); 
     } 
     if (($("#zv3").html().length > 0) && ($("#zv3").change())) { 
      //ion.sound.play("water_droplet_2"); 
      alert("sound"); 
     } 
     if (($("#zv4").html().length > 0) && ($("#zv4").change())) { 
      //ion.sound.play("water_droplet_2"); 
      alert("sound"); 
     } 
     if (($("#zv5").html().length > 0) && ($("#zv5").change())) { 
      //ion.sound.play("water_droplet_2"); 
      alert("sound"); 
     } 
     if (($("#zv6").html().length > 0) && ($("#zv6").change())) { 
      //ion.sound.play("water_droplet_2"); 
      alert("sound"); 
     } 
     if (($("#zv7").html().length > 0) && ($("#zv7").change())) { 
      //ion.sound.play("water_droplet_2"); 
      alert("sound"); 
     } 
     if (($("#zv8").html().length > 0) && ($("#zv8").change())) { 
      //ion.sound.play("water_droplet_2"); 
      alert("sound"); 
     } 

AJAX пример:

function sync_vitrasa(id){ 
    $.ajax({ 
    url: "/vitrasa_state/", 
    type:"GET", 
    data: { 
     id: id, 
    },success: function(data) { 
     id="#zv"+id; 
     if($(id).html().length == 0){ 
      $(id).html(data) 
      alert("sound"); 
     } 
     else { 
      if($(id).html() != data) { 

       //ion.sound.play("water_droplet_2"); 
       alert("image is already there"); 
      } 
     } 
    } 
}); 
} 

Проверьте представить в другом HTML щелкает:

$(document).ready(function() { 
      setInterval(function() { 
       $.ajax({ 
        url : '/vitrasa/', 
        success : function(data){ 
         $('#sub2').click(function() { 
          alert("calling Ajax."); 
          sync_vitrasa(2); 
         }); 
        } 
       }); 
      }, 500); 

      }); 

PD: zvX является ДИВЫМ идентификатором для HTML т.да, что contais изображения заряженного с помощью AJAX

+0

afaik a 'div' не имеет события« change ». Особенно не на программные изменения. Вы можете запустить событие вручную, но я думаю, что это не то, что вы ищете ... – eisbehr

+2

Возможный дубликат [Jquery Event: обнаружение изменений в html/text div] (http://stackoverflow.com/questions/15657686/jquery-event-detect-changes-to-the-html-text-of-a-div) –

ответ

1

Почему отслеживать изменения HTML Td, когда вы знаете, что меняются через AJAX?

Например, если у вас есть что-то в вашем АЯКС ответ, который говорит

$('#zv8').html(result); 

вызов, что вы должны изменить оттуда. Вы уже знаете, что меняется.

Edit: Изменение в код АЯКС

Я думаю, что что-то подобное должно получить, что вы хотите. Это в основном говорит, если элемент пуст, помещенный в изображение. Если это не пусто, проверьте, не то, что я собираюсь вставить, отличается от того, что там. Если да, сделайте что-нибудь.

function sync_vitrasa(id){ 
    $.ajax({ 
    url: "/vitrasa_state/", 
    type:"GET", 
    data: { 
     id: id, 
    },success: function(data) { 
     id="#zv"+id; 
     if($(id).html(length) == 0){ 
      $(id).html(data) 
     { 
     else { 
      if($(id).html != data) { 
       $(id).html(data); 
       //ion.sound.play("water_droplet_2"); 
       alert("sound"); 
      } 
     } 
    } 
}); 
+0

ok, тогда я бы хотел, чтобы ajax ответил только на контент и мою функцию, если содержимое еще не загружено в td, вы могли бы проверить мой код ajax? спасибо – Datex2

+0

спасибо, кажется, хорошо, но когда я пытаюсь загрузить с ajax мой другой html, где находится submit, что я должен проверить, нажат ли imput, чтобы вызвать ajax, который вставляет изображение, он не работает. Я обновил свой код, спасибо @Jhorra – Datex2

+0

Если я проверяю, что отправить сообщение не нужно, чтобы проверить содержимое HTML div – Datex2