jQuery`prop`在详细信息的`open`属性中没有在FireFox中工作

Jea*_*eri 6 javascript jquery html5

我想修复Firefox中的detail-html-element行为.

所以我open自己切换属性:

$('summary').on('click', function () {
    var details = $(this).parent();  
    $('details').prop('open', !details.attr('open'));
});
Run Code Online (Sandbox Code Playgroud)

DEMO

我使用prop因为open是属性而不是属性,对吧?!

无论如何,这并不工作在Firefox,但如果我更改propattr它的工作原理

$('details').attr('open', !details.attr('open'));  
Run Code Online (Sandbox Code Playgroud)

有人可以向我解释我哪里出错了吗?日Thnx!

JNF*_*JNF 2

您使用的 css 标识一个属性。这就是为什么更改属性会导致 css 更改而设置属性却不会。

我使用 prop 因为 open 是一个属性而不是属性,对吗?!

嗯,两者都可以,取决于你如何定义它。css 再次指的是属性。

几个很长的答案解释了差异以及每个答案的用途。

简而言之

属性是HTML 元素上的设置它将某些数据或行为归因于该元素。它主要与加载相关,帮助我们正确渲染 HTML,听说这可能就是让你使用.prop

属性是DOM 节点的一个特征,告诉我们它当前的 foo 状态。特定的节点类型附加了特定的属性,有些是标准的,有些是浏览器设计的。由于它是 DOM 的一部分,因此该属性与我们一起进行 DOM 操作(又名 Javascript)。