Сохранение и восстановление действия «onclick» для объектов jQuery

Я хочу отключить целую кучу объектов на странице, а затем снова включить их позже. Поскольку некоторые из них являются тегами, а не кнопками, я отключил их, удалив их атрибут onclick. Я пытался сохранить старый обработчик в .data (), но, к сожалению, когда я пытаюсь восстановить их с помощью $ (obj) .attr ('onclick', $ (obj) .data ('onclick') ) , он вызывает функцию, а не восстанавливает ее в атрибуте. И если я попытаюсь сохранить его в другом атрибуте вместо данных, он не сохранит функцию, он сохранит возвращаемое значение для функции.

Есть ли какой-либо способ сделать это без повторной записи каждого тега и каждый обработчик onclick на моей странице?

if( doEnable) {

    $(obj).attr('href', $(obj).data('href'));
    $(obj).attr('onclick', $(obj).data('onclick'));


    $(obj).removeClass(EIS.config.classes.disabled);
    $(obj).show();

}
else {
    // Save the things you're going to remove
    $(obj).data('onclick', $(obj).attr('onclick'));
    $(obj).data('href', $(obj).attr('href'));

    $(obj).prop("href", null);
    $(obj).prop("onclick", null);

    $(obj).addClass(EIS.config.classes.disabled);
    $(obj).show();
   }

Между прочим, этот код работает нормально в Chrome и Firefox, но только иногда в IE8 и никогда в IE6. К сожалению, клиент сначала тестирует IE6.

5
задан Paul Tomblin 11 July 2011 в 23:01
поделиться