#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
};
});
}
}
});
});