Как обернуть изображение в тег привязки только один раз? - PullRequest
0 голосов
/ 08 января 2019

Я использую этот скрипт, чтобы автоматически обернуть изображение, загруженное тегом привязки, и добавить исходный файл изображения в 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>

Ответы [ 2 ]

0 голосов
/ 22 апреля 2019

Использование логического значения в качестве глобальной переменной, например

var flag = true;

Теперь установите условие перед выполнением, как

if(flag){  
   $('.lightbox img').each(function(){
       $(this).wrap(function() {
         return '<a href="' + $(this).attr('src') + '" />';
       }) 

   });
  flag=false;    
  }
0 голосов
/ 22 апреля 2019

Так как вам просто нужно обернуть его один раз, вам нужно выбрать только теги img, которые не обернуты в тег привязки, например

$('.lightbox img:not(a>img)').each(function(){
    $(this).wrap(function() {
        return '<a href="' + $(this).attr('src') + '" data-toggle="lightbox" />';
    })   
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...