Я хочу отключить целую кучу объектов на странице, а затем снова включить их позже. Поскольку некоторые из них являются тегами, а не кнопками, я отключу их, удалив их onclick attr. Я попытался сохранить старый обработчик в .data(), но, к сожалению, когда я пытаюсь восстановить их с помощью $(obj).attr('onclick',$(obj).data('onclick'))
, он вызывает функцию, а не восстанавливает ее в атрибуте. И если я попытаюсь сохранить его в другом атрибуте вместо данных, он не сохранит функцию, он сохранит возвращаемое значение для функции.Сохранить и восстановить действие «onclick» на объектах jQuery
Есть ли способ сделать это без повторной записи каждого тега и каждого обработчика 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.
Использование метода Javascript было самым простым изменением, и, похоже, оно работает. –