2010-10-13 2 views
1

У меня есть две таблицы, и я хочу иметь событие изменения на одной таблице. То есть, когда я нажимаю на первую таблицу, я хочу внести некоторые изменения во вторую таблицу. Но как-то ниже функция изменения не работает. Какие-либо предложения?Функция jQuery change() не работает

$("#history_table table:eq(0)").click(function(){ 
        $("#history_table table:eq(1) thead tr th:nth-child(1)").html("New"); 
       }); 

$("#history_table table:eq(1) thead tr th:nth-child(1)").change(function() { 
         alert('Handler for .change() called.'); 
       }); 

Здесь history_table является идентификатором тега div и имеет две таблицы. Функция click() работает, но я также ожидаю увидеть сообщение с предупреждением, но это не показано.

ответ

4

Событие/обработчик .change() не предназначен для (или уволен по умолчанию) для этого, это элемент элемента ввода, изменяющий данные, например <input> или <select>. Вместо этого вам понадобится специальное событие (или ручное стрельба change ...) здесь, например:

$("#history_table table:eq(0)").click(function(){ 
    $("#history_table table:eq(1) thead tr th:nth-child(1)").html("New") 
    .trigger('myEvent'); 
}); 

$("#history_table table:eq(1) thead tr th:nth-child(1)").bind('myEvent', function() { 
    alert('Handler for .change() called.'); 
}); 
+0

Спасибо, Ник, все в порядке. Но что, если я хочу, чтобы моя вторая таблица всегда слушала событие, то есть вместо вызова триггера из другой функции, автоматически я хочу отображать предупреждающее сообщение, когда кто-то меняет значения второй таблицы. Там в любом случае? – jgg

+0

@goutham - Не встроенный кросс-браузер, один из них ... это было бы очень дорого для мониторинга :) –

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