Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery-有没有办法';保存';dom元素的状态(css)并恢复到保存的状态等。。?_Javascript_Jquery - Fatal编程技术网

Javascript jQuery-有没有办法';保存';dom元素的状态(css)并恢复到保存的状态等。。?

Javascript jQuery-有没有办法';保存';dom元素的状态(css)并恢复到保存的状态等。。?,javascript,jquery,Javascript,Jquery,我有一个css菜单,也做子菜单等。。问题是,我必须为tab/jaws用户创建EventHandler。似乎当我用show()/hide()操作菜单时,它会破坏固有的css选择器及其状态,因此如果用户想同时移动选项卡和鼠标,它将无法工作。他们要么使用所有鼠标,要么使用标签等 我可以为mouseover/out等创建更多的js事件处理程序。但我想知道,在加载时克隆父元素是否可行,并将其绑定到选项卡中,当它们在菜单上“关闭”时,我会“还原”到这个保存的状态,这样用户就可以使用mouseover/out

我有一个css菜单,也做子菜单等。。问题是,我必须为tab/jaws用户创建EventHandler。似乎当我用show()/hide()操作菜单时,它会破坏固有的css选择器及其状态,因此如果用户想同时移动选项卡和鼠标,它将无法工作。他们要么使用所有鼠标,要么使用标签等

我可以为mouseover/out等创建更多的js事件处理程序。但我想知道,在加载时克隆父元素是否可行,并将其绑定到选项卡中,当它们在菜单上“关闭”时,我会“还原”到这个保存的状态,这样用户就可以使用mouseover/out等css方法


这有意义吗?或者这和为鼠标事件创建更多的EventHandler一样多的工作/开销吗?

下面是一个按照您的建议保存和恢复菜单的示例


下面是一个按照您的建议保存和恢复菜单的示例


听起来很合理。克隆菜单,删除旧菜单,附加克隆。听起来很合理。克隆菜单,删除旧菜单,附加克隆。谢谢,我明天会尝试,然后回来接受。谢谢你的答复。我们能不能再谈下去?我一直希望能够保存DOM克隆,并能够在关闭和重新打开浏览器后恢复到它@IfediOkonkwo-我想如果您将数据保存到localstorage,那么您可以在用户返回时恢复状态。否则,您必须将结构发送到服务器并存储在那里。@mrtsherman。使用这里的示例,
$saved
是一个jQuery对象。您提出的解决方案的问题是:数据通常可以保存为文本。即使保存对象的
.text()
,我猜您也可以重新加载它,但显然会丢失任何数据和事件。这将完全杀死任何动态页面。谢谢,我明天会尝试这个,然后回来接受。谢谢你的答复。我们能不能再谈下去?我一直希望能够保存DOM克隆,并能够在关闭和重新打开浏览器后恢复到它@IfediOkonkwo-我想如果您将数据保存到localstorage,那么您可以在用户返回时恢复状态。否则,您必须将结构发送到服务器并存储在那里。@mrtsherman。使用这里的示例,
$saved
是一个jQuery对象。您提出的解决方案的问题是:数据通常可以保存为文本。即使保存对象的
.text()
,我猜您也可以重新加载它,但显然会丢失任何数据和事件。这将完全杀死任何动态页面。
var $saved = $('#cssmenu').clone();

$('#a').click( function() {
    $('#cssmenu').remove();
});

$('#b').click( function() {
    $('body').prepend($saved);
});