Функция скрытия и изменения, не работающая в explore

#javascript #jquery #html

#javascript #jquery #HTML

Вопрос:

Я написал некоторый код. Коды работают в Chrome, safari и Mozilla, но коды не работают в Explorer.

 $('#vize-islem').hide();
$('#vize-bilgi').hide();
$('#vize-ulke').on('change', function(e) {
    let self = $(e.target);
    self.next('a').attr('href', self.find(':selected').data('url')).html('<i class="fas fa-external-link-alt"></i>'   self.find(':selected').text());
    $('#vize-islem').hide();
    $('#vize-bilgi').hide();
    $.get('vize/vizeislem/'   self.val(), function(result) {
        $('#vize-islem option').remove();
        $('#vize-islem').append('<option value="">Seçiniz</option>');
        if ( result.length > 0 ) {
            $('#vize-islem').show('slow');
            for (let key in result) {
                let kategori = result[key];
                console.log(kategori);
                $('#vize-islem').append(`<option value="${kategori.id}" data-url="${kategori.url}">${kategori.title}</option>`);
            }
        }
    }, 'json');
});
  

Я хочу скрыть и изменить в explorer.

Комментарии:

1. Пожалуйста, определите » не работает «. Что вы хотите, чтобы ваш код делал, и что он делает вместо этого? Обратите внимание, что вы написали код ES6, попытка запустить его в браузере ES5 не сработает.

2. Также, пожалуйста, укажите версии IE, которые вы пробовали.

3. let вероятно, проблема. Могу ли я использовать let?

Ответ №1:

Литералы шаблонов полностью не поддерживаются ни в одной версии IE. Аналогично, let ключевое слово работает только в IE11. Вместо этого вам нужно использовать var и конкатенацию строк.

Также обратите внимание, что вам следует кэшировать повторяющиеся селекторы в вашей логике для повышения производительности. Попробуйте это:

 var $vize_islem = $('#vize-islem').hide();
var $vize_bilgi = $('#vize-bilgi').hide();

$('#vize-ulke').on('change', function(e) {
  let $self = $(e.target);
  $self.next('a').attr('href', $self.find(':selected').data('url')).html('<i class="fas fa-external-link-alt"></i>'   $self.find(':selected').text());
  $vize_islem.hide();
  $vize_bilgi.hide();

  $.get('vize/vizeislem/'   $self.val(), function(result) {
    $vize_islem.find('option').remove();
    $vize_islem.append('<option value="">Seçiniz</option>');

    if (result.length > 0) {
      $vize_islem.show('slow');
      for (let key in result) {
        let kategori = result[key];
        $vize_islem.append('<option value="'   kategori.id   '" data-url="'   kategori.url   '">'   kategori.title   '</option>');
      }
    }
  }, 'json');
});
  

Комментарии:

1. Большое вам спасибо! Это мое решение 🙂 Но у меня возникла некоторая проблема. Я не смог решить эту проблему. Я сделал это, но это работает плохо.

Ответ №2:

Я не смог исправить эту часть. Для браузера Android и ie 10 <

 $('#vizeislemler').on('change', function(e) {
    let $self = $(e.target);$self.next('a').attr('href', $self.find(':selected').data('url')).html('<i class="fas fa-external-link-alt"></i>'   $self.find(':selected').text());
    window.location = selected.data('url');
  });

  $('a[href*="#"]')
    // Remove links that don't actually link to anything
    .not('[href="#"]')
    .not('[href="#0"]')
    .click(function(event) {
        // On-page links
        if (
            location.pathname.replace(/^//, '') == this.pathname.replace(/^//, '') 
            amp;amp; 
            location.hostname == this.hostname
        ) {
        // Figure out element to scroll to
        var target = $(this.hash);
        target = target.length ? target : $('[name='   this.hash.slice(1)   ']');
        // Does a scroll target exist?
        if (target.length) {
          // Only prevent default if animation is actually gonna happen
          event.preventDefault();
          $('html, body').animate({
            scrollTop: target.offset().top
          }, 1000, function() {
            // Callback after animation
            // Must change focus!
            var $target = $(target);
            //$target.focus();
            if ($target.is(":focus")) { // Checking if the target was focused
              return false;
            } else {
              $target.attr('tabindex','-1'); // Adding tabindex for elements not focusable
              //$target.focus(); // Set focus again
            };
          });
        }
        }
      });
});