最佳实践(jQuery、CSS):如何初始化将切换可见的隐藏元素?

2024-03-23

堆栈警告我这是一个主观问题,并且可能很接近,但无论如何我都会尝试这个。

我有一组控制按钮附加到图库中的图片。这些最初是隐藏的,当鼠标悬停在图像上时切换可见。我的问题是这样的:

这些按钮应该在样式表中设置为隐藏,还是保持可见并在加载时由 jQuery 隐藏?我想要优雅的降级,所以如果我希望这些在未启用 javascript 的情况下可见,那么在 CSS 中初始化它似乎是一个坏主意。

最重要的是,我使用 Ajax 来加载这些图像的页面。如果我使用 jQuery hide 执行此操作,它不会影响从 ajax 请求加载的内容,因为它仅在$(document).ready()。我尝试过使用live('ready'),但了解到该事件不受支持live().

那么对于这样的事情,最佳实践是什么?看起来无论哪种方式都有很多优点和缺点(css 与 document.ready),如果它们被默认 CSS 隐藏,按钮将通过 ajax 分页正常切换。但如果未启用 JavaScript,按钮的功能将会丢失。有人对此有建议吗?

注意:我最初没有提到它,但它很重要。我目前正在使用fadeToggle()完成我的转变,这可能是使整个问题复杂化的原因。到目前为止,所有解决方案似乎都有效,但在引入衰落时效果就不那么好了。


如果您尝试更改通过 Ajax 加载的元素的样式,则几乎就像您尝试击中移动目标一样。我将在样式表中创建两个声明 - 一个用于隐藏,一个用于可见 - 然后根据附加到 body 标记(或任何其他包含标记)的类来切换它们。

Like so:

body .mybutton {
  display:block;
}

body.loaded .mybutton {
  display:none;
}

然后在你的JS文件中:

$(document).ready(function() {
  $('body').addClass('loaded');
});

这样,任何具有类名的元素mybutton- 当前和未来 - 将应用适当的风格。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

最佳实践(jQuery、CSS):如何初始化将切换可见的隐藏元素? 的相关文章

随机推荐