Я кодирую плагин jquery, и мне нужно, чтобы некоторые кнопки имели двойное состояние (например, редактирование/сохранение). Я получаю эту информацию через JSON и вставляю ее в кнопку как:
node
- current //['primary'/'secondary']
- primary // some info
- secondary // some info
Как только я нажму кнопку, я попаду сюда, чтобы изменить действие. Итак, я хочу заменить всю ссылку шаблоном и информацией, которую я получаю из button.data. Поскольку я хочу заменить не только innerHtml, но и внешний, я должен использовать 'replaceWith'. Затем я копирую «данные» на новую кнопку и (в идеале) удаляю старую.
changeButtonAction : function(button, selector){
var node = button.data('node'),
info;
if(node.current == 'primary'){
info = node.secondary;
node.current = 'secondary';
}else{
info = node.primary;
node.current = 'primary';
}
button.replaceWith(multiReplace(OPERATION_ITEM, info, true));
button.data('node', $.extend( true, {}, node));
... //bit of interaction
}
Дело в следующем: после выхода из функции я теряю новые данные, так как они говорят, что они не определены. Может ли кто-нибудь помочь? Использование replaceWith не обязательно, поэтому, если вы придумаете другое решение, все будет в порядке.