我刚刚开始接触 JQuery,所以如果这是一个简单的问题,我提前道歉。
我正在处理有关打印预览的 A List Apart 文章,以尝试在我正在处理的 web 应用程序中获取实时打印预览。我已经让它令人满意地工作,但我现在正试图将我的代码重构为我认为它应该在内部看起来的样子。我目前有两组方法,一组用于显示微拷贝块,另一组用于删除它。我宁愿只有一个集合来切换相关元素的适当值。
对于 CSS,这意味着禁用非打印预览表并启用打印预览表,反之亦然。对于我的 microcopy,这意味着设置display
为block
而不是none
,反之亦然。
至少对于样式表链接,我想简单地遍历相关link
元素的集合并设置disabled
为,!disabled
但我不知道该怎么做。我正在使用 jQuery,但我不反对低于该抽象级别。
我假设一旦我知道如何对link
元素执行此操作,我应该能够扩展解决方案以切换display
微拷贝 div 的属性。
这是我目前为好奇而设计的功能:
function printPreview() {
$("link[rel*='style'][media!='print'").attr("disabled", true);
$("link[rel*='style'][title='print preview']").attr("disabled", false);
addPrintPreviewMicrocopy();
}
function addPrintPreviewMicrocopy() {
$("div[id='print-preview-microcopy']").css({'display':'block'});
}
function normalView() {
$("link[rel*='style'][media!='print'").attr("disabled", false);
$("link[rel*='style'][title='print preview']").attr("disabled", true);
removePrintPreviewMicrocopy();
}
function removePrintPreviewMicrocopy() {
$("div[id='print-preview-microcopy']").css({'display':'none'});
}
提前致谢!
谢谢大家。这是我的最终解决方案:
function toggleView() {
$("link[rel*='style'][media!='print']").each( function() {
this.disabled = !this.disabled;
});
}
事实证明,我什至不需要切换 div,因为仅样式表就可以做到这一点。