Я кодирую плагин jquery, и мне нужны некоторые кнопки, чтобы иметь двойное состояние (например, редактировать/сохранять). Я получаю эту информацию через JSON и вставляю ее в виде:Объект данных в jquery undefined после replaceWith
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» не обязательно, поэтому, если вы придумаете другое решение, все будет в порядке.
, если это возможно, пожалуйста, сделать демонстрацию в HTTP: // jsfiddle .net/чтобы другие лучше поняли вашу проблему. Не нужно копировать весь код, а только часть, в которой проблема. Используйте «Добавить ресурсы» на левой стороне, чтобы добавить другие js-файлы. – Diode