Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.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中更改类名而不更改样式_Javascript_Html_Internet Explorer 8 - Fatal编程技术网

在javascript中更改类名而不更改样式

在javascript中更改类名而不更改样式,javascript,html,internet-explorer-8,Javascript,Html,Internet Explorer 8,我无法禁用某些元素上的事件(甚至通过element.onclick=null),所以我决定更改元素的名称。 我刚才试过: element.className = "newOne"; 但它使我的元素消失了,很可能是因为它清除了样式。 我的第二种方法包括保存样式,然后将其重新复制到旧元素: TempStyles = element.styles.cssText; element.className = "newOne"; element.styles.cssText = tempStyles;

我无法禁用某些元素上的事件(甚至通过element.onclick=null),所以我决定更改元素的名称。
我刚才试过:

element.className = "newOne";
但它使我的元素消失了,很可能是因为它清除了样式。
我的第二种方法包括保存样式,然后将其重新复制到旧元素:

TempStyles = element.styles.cssText;
element.className = "newOne";
element.styles.cssText = tempStyles;
我尝试了使用.cssText和不使用.cssText两种方法,但没有一种有效。

!!!我的限制是IE8,没有jQUERY

如果您以前将一个类归因于该HTML元素,那么执行
element.className=“newOne”
将用
newOne
替换所有其他类以及与它们相关的任何样式

如果要维护旧类和相应的样式,必须将新类附加到HTML元素中:

element.className += " newOne";

请注意,新类名前有额外的空格。需要将新类名与前一个类名分开,这样属性将保存
oldClassnewOne
,而不是
oldClassnewOne
。这样,您的元素现在有两个类。

您最初是如何将事件添加到特定元素的?请显示足够的“”代码,以便我们可以重现您的问题,帮助解决问题,并且很可能指出您可能在一开始就造成问题的错误。您是否尝试过您可以尝试保留旧类,但在它之后附加另一个类并重写?element.className=“oldClass newOne”;然后使用!重要的;flag…Pete很好,如果你只是想删除事件,请按照Pete的建议去做。我不能使用EventListener,因为ie8不支持它,只支持attachEvent/detachEvent,但某些进程一直在覆盖它。我需要知道的只是标题HX中提到的帮助,但我需要更改类名以防止使用它,因此必须删除旧名称。@Arkadiusz抱歉,我误解了这个问题。你能上传一些代码到或类似的网站上,以便更好地理解你想要实现的目标和你得到的东西吗?