То, что вы пытаетесь сделать, не ясно из того, как вы задали вопрос. Из того, что вы вставили в код, я бы предположил, что вы пытаетесь изменить событие onChange в div. Итак, для начала у вас есть:
$("#field1").change(function (){alert('hi')});
И когда # field1 изменяется, вы хотите запустить функцию, которая вызывает оповещение ('привет')
Позже у вас есть кнопка, которая запускается:
$("#field1").change(function(){alert('again')});
И вы хотите, чтобы изменения в # field1 вызывали функцию, которая вызывает оповещение («снова»)
Но то, что вы получаете, когда происходит изменение, - это окно с надписью «hi».
То, что происходит, так это то, что и предупреждение («привет»), и предупреждение («снова») связываются с событием изменения. Если вы хотите заменить событие изменения, вам сначала нужно использовать функцию unbind (type, fn) .
Если вы хотите, чтобы они оба стреляли, вам нужно «вернуть ложь»; от ваших функций изменения.