Я только начинаю изучать JQuery, поэтому заранее прошу прощения, если это простой вопрос.
Я работаю со статьей A List Apart по предварительным просмотрам печати , чтобы попытаться получить предварительные просмотры печати в веб-приложении, над которым я работаю. Я получил его, чтобы работать удовлетворительно, но сейчас я пытаюсь реорганизовать мой код так, как я думаю, он должен выглядеть внутренне. В настоящее время у меня есть 2 набора методов, один для отображения блока микроскопии и другой для его удаления. Я бы предпочел просто иметь один набор, который переключает соответствующие значения рассматриваемых элементов.
Для CSS это означает отключение листов без предварительного просмотра и включение предварительного просмотра, и наоборот. Для моей микроскопии это означает установку display
на block
вместо none
, и наоборот.
По крайней мере, для ссылок на таблицу стилей, я хочу просто перебрать коллекцию связанных элементов link
и установить disabled
в !disabled
, но я не могу понять, как это сделать. Я использую jQuery, но я не против того, чтобы опуститься ниже этого уровня абстракции.
Полагаю, что когда я знаю, как это сделать для элементов link
, я смогу расширить решение, чтобы также включить атрибут display
в блоке микроскопии.
Вот мои текущие функции для любопытных:
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, как это делали одни стилизы.