Как я могу создать пользовательское событие, используя jquery - PullRequest
0 голосов
/ 05 февраля 2012

Я хочу создать событие, когда содержимое div меняется, событие называется ..

change = function(oldval,newval){
    if (oldval != newval){
        return true;
    }
    return false;
}

Я хочу, чтобы эта функция вызывалась каждый раз, когда меняется содержимое div. Любая идеяКак я могу этого достичь?

Ответы [ 2 ]

1 голос
/ 05 февраля 2012

Если вы не планируете поддержку IE, вы можете использовать DOMNodeInserted и DOMNodeRemoved, чтобы проверить, добавлены или удалены элементы из вашего div.

$('#yourDiv').bind('DOMNodeInserted DOMNodeRemoved', function(event, oldvalue, newvalue) {
   if (oldval != newval){
        return true;
    }
    return false;
});

для поддержки IE вы можете использовать

$(function() {
  var $div = $("#yourDiv");
  var content = $div.html();
  var look = setInterval(function() {
    var newcontent = $div.html();
    if (html != newcontent ) {
      change(content, newcontent); 
      content = newcontent;
    }
  },100);

  function change(oldval, newval() {
     if (oldval != newval){
        return true;
    }
    return false;
  }
});
1 голос
/ 05 февраля 2012

Я хочу, чтобы эта функция вызывалась при каждом изменении содержимого элемента

Если содержимое элемента равно значению входных данных формы:

Oneкод строки:

$(':input', $('#divId')).change(function(){alert('changed');});

Или опция делегата для динамически добавляемых элементов (еще одна строка ... (; ):

$('#divId').on('change', ':input', function(){ alert('changed');});

документы:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...