Обернуть изображение в тег привязки только один раз
Я использую этот сценарий, чтобы автоматически обернуть изображение, загруженное тегом привязки, и добавить исходный файл изображения в href. Проблема заключается в том, что каждый раз, когда я редактирую свою страницу, он снова запускает сценарий, поэтому, если я редактирую страницу 20 раз, это добавило бы анкерный перенос 20 раз, мне нужно, чтобы он запускался только один раз ИЛИ обнаружил, что для изображения уже есть анкерный перенос тега, и не запустил скрипт.
<script>
$('.lightbox img').each(function(){
$(this).wrap(function() {
return '<a href="' + $(this).attr('src') + '" />';
})
});
</script>
После запуска сценария я запускаю его, чтобы добавить атрибут в тег привязки, как я могу сделать эти два сценария только одним и запустить первый только один раз.
<script>
$(".lightbox a").attr("data-toggle", "lightbox");
</script>
0 ответов
Используйте логическое значение в качестве глобальной переменной, например
var flag = true;
Теперь установите условие перед выполнением, как
if(flag){
$('.lightbox img').each(function(){
$(this).wrap(function() {
return '<a href="' + $(this).attr('src') + '" />';
})
});
flag=false;
}
Поскольку вам нужно только один раз обернуть его, вам нужно выбрать только теги img, которые не обернуты в тег привязки, например
$('.lightbox img:not(a>img)').each(function(){
$(this).wrap(function() {
return '<a href="' + $(this).attr('src') + '" data-toggle="lightbox" />';
})
});