Я видел похожее поведение, когда манипулировал DOM с помощью обработчиков событий zaps innerHTML, которые были предварительно настроены, хотя только при замене реальных элементов, к которым были прикреплены обработчики. Это верно для встроенных атрибутов обработчика событий, а также для «правильных» обработчиков событий, подключенных через Javascript.
Лучший способ проверить, происходит ли это, - добавить несколько отладочных операторов в функцию, которая вызывается при нажатии на abn. Если вы не используете отладчик, просто добавьте несколько предупреждений (а затем посмотрите на использование отладчика JavaScript)
function iAmCalledWhenSomeoneClicksOnAbn(){
alert("I was called, w00t!");
//...rest of function
}
Первый щелчок (который работает) даст вам предупреждение. Если второй щелчок (который не работает) пропускает предупреждение, вы знаете, что ваши манипуляции с DOM удаляют ваши обработчики событий.
Если второй щелчок все еще дает вам предупреждение, происходит что-то еще. Наиболее вероятный виновник - необработанное исключение Javascript, которое останавливает выполнение. Загрузите отладчик для своего браузера (Firefox / Firebug, IE / Visual Studio Express Web Developer, Safari / Drosera) и следуйте по пути выполнения до тех пор, пока не будет сгенерировано исключение, или вы попадете в ту часть кода, где должно происходить манипулирование DOM. Если вы достигнете более поздней версии, проверьте содержимое всех переменных, а также текущее содержимое DOM, чтобы определить, почему не происходит ожидаемая манипуляция DOM.