Скройте заголовок изображения в Slimbox

Как Greg упоминает, компиляторы не сделают этого в режиме отладки. Для сборок отладки нормально быть медленнее, чем сборка напоминания, но они не должны отказывать чаще: и если Вы зависите от оптимизации последнего вызова, они могут сделать точно это. Из-за этого часто лучше переписать последний вызов как нормальный цикл.:-(

6
задан Community 23 May 2017 в 12:01
поделиться

3 ответа

Я бы оставил свойство title в покое для целей доступности и изменил slimbox.js так, чтобы он считывал атрибут title сразу при загрузке страницы, сохранял его в настраиваемом свойстве (называемом «заголовок» или что-то в этом роде) , и они программно удаляют атрибут title, чтобы предотвратить появление всплывающей подсказки. Конечно, это означает, что остальную часть кода, который ссылается на свойство title, необходимо изменить, чтобы использовать настраиваемое свойство.

1
ответ дан 17 December 2019 в 00:12
поделиться

Вы можете использовать параметр linkMapper , чтобы настроить отображаемый заголовок.

Если вы используете сжатый файл slimbox2.js, у вас будет код автозагрузки, чтобы вы могли изменить его, чтобы делать то, что объяснил Джош Стодола:

// AUTOLOAD CODE BLOCK (MAY BE CHANGED OR REMOVED)
jQuery(function($) {
    $("a[rel^='lightbox']").each(function(){
        //Set caption and remove title attributes
        this.caption = this.title;
    }).slimbox({/* Put custom options here */}, function(el){
            //Custom linkMapper to grab the description from the caption attribute
            return return [el.href, el.caption];
        }), function(el) {
            return (this == el) || ((this.rel.length > 8) && (this.rel == el.rel));
    });
});
0
ответ дан 17 December 2019 в 00:12
поделиться

Вам нужен небуферизованный вывод всякий раз, когда вы хотите убедиться, что вывод был записан, прежде чем продолжить. Одним из примеров является стандартная ошибка библиотеки времени выполнения C - обычно она не буферизуется по умолчанию. Поскольку ошибки (будем надеяться) нечасты, вы захотите узнать о них немедленно. С другой стороны, стандартный вывод буферизирован просто потому, что предполагается, что через него будет проходить гораздо больше данных.

Другой пример - библиотека регистрации. Если ваши сообщения журнала хранятся в буферах вашего процесса, и ваш процесс выгружает ядро, есть очень большая вероятность, что вывод никогда не будет записан.

Кроме того, минимизируются не только системные вызовы, но и дисковый ввод-вывод как хорошо. Скажем, программа читает файл по одному байту за раз. С небуферизованным вводом, чтобы определить соответствующий атрибут, используйте getAttribute узла 'el', переданного функции

, замените вызов по умолчанию "jQuery (function ($)" в вашем файле slimbox .js этим

jQuery(function($) {
$("a[rel^='lightbox']").slimbox({ /* Put custom options here */ }, function(el) {
        return [el.href, el.getAttribute("slimboxcaption")];
}, function(el) {
  return (this == el) || ((this.rel.length > 8) && (this.rel == el.rel));
 });
});

, тогда вы можете использовать это для передать любое HTML-содержимое в поле, скрывая его от пользователя, наведенного на ссылку

<a href="/myimage.jpg" title="This is my image" slimboxcaption='<h2>Here you can enter html code for your box caption</h2>...' rel="lightbox"><img src="/myimage_small.jpg"/></a>
6
ответ дан 17 December 2019 в 00:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: