переделал немного код, есть по факту 3 аякс запроса в одном файле, 1 из них выполняется постоянно(каждые 5 сек выдает какой то текст с возможности юзеру для вставки) и остальные 2 для смены языка ввода-вывода для словаря.(да я делаю универсальный онлайн словарь и хочу чтобы он работал в обе стороны), и прикол в том, что я вроде бы разделил их условием по выполнению + бульку сделал, но когда переключаешь типо язык(по факту уже пашет другой аякс запрос который заменяет sql запрос на обратный) то он игнорирует условие для невыполнения первого и по факту превращается в кашу(запросы могут выполнятся в обе стороны). я бы хотел, если хоть немного понятна логика выполнения кода, узнать, в чем моя ошибка(в написании кода вы можете найти их уйму).
КОД:
let boolfalse = false;
function rusAjax(){
if(boolfalse == false)
{
let timeout;
let xhr;
$('.text').on('input', function(e){
e.preventDefault();
let d = $(this).val();
clearTimeout(timeout);
if(xhr)
xhr.abort();
timeout = setTimeout(function(){
xhr = $.ajax({
url: 'php/result.php',
type: 'post',
data: 'text=' + d,
dataType: 'html',
success: function(res) {
$('#result').html(res).fadeIn(300);
/*открыть панель аббревиатуры если поле ввода пустое*/
let audbtn = document.querySelectorAll('.fa-microphone');
let vol = document.querySelectorAll('.vol');
let tekst = document.querySelectorAll('.hide');
let visible = document.querySelectorAll('#visible');
let bool = false;
for(let i=0;i<audbtn.length;i++)
{
/*если есть тег для аудио то выводить в результат*/
if(audbtn[i].contains(audbtn[i].querySelector('audio')))
{
audbtn[i].onclick=function()
{
if(this.querySelector('audio').paused)
{
this.querySelector('audio').play();
}else{
this.querySelector('audio').pause();
}
}
}
}
for (let i = 0; i < visible.length; i++)
{
if(visible[i].contains(visible[i].querySelector('#allWord')))
{
document.querySelector("#copyWord").onclick = function(){
document.querySelector(".vol").classList.add('hint');
document.querySelector(".vol").classList.add('hint--right');
document.querySelector(".vol").setAttribute("data-hint","Скопировано");
function copytext(el)
{
let $tmp = $("<input>");
$("body").append($tmp);
$tmp.val($(el).text()).select();
document.execCommand("copy");
$tmp.remove();
}
copytext("#visible");
}
}
}
}
})
}, 800);
$('#result').fadeOut(200);
})
}
};
rusAjax();
function digAjax(){
if(boolfalse == true)
{
let timeout;
let xhr;
$('.text').on('input', function(e){
e.preventDefault();
let t = $(this).val();
clearTimeout(timeout);
if(xhr)
xhr.abort();
timeout = setTimeout(function(){
xhr = $.ajax({
url: 'php/result2.php',
type: 'post',
data: 'text=' + t,
dataType: 'html',
success: function(res) {
$('#result').html(res).fadeIn(300);
/*открыть панель аббревиатуры если поле ввода пустое*/
let audbtn = document.querySelectorAll('.fa-microphone');
let vol = document.querySelectorAll('.vol');
let tekst = document.querySelectorAll('.hide');
let visible = document.querySelectorAll('#visible');
let bool = false;
for(let i=0;i<audbtn.length;i++)
{
/*если есть тег для аудио то выводить в результат*/
if(audbtn[i].contains(audbtn[i].querySelector('audio')))
{
audbtn[i].onclick=function()
{
if(this.querySelector('audio').paused)
{
this.querySelector('audio').play();
}else{
this.querySelector('audio').pause();
}
}
}
}
for (let i = 0; i < visible.length; i++)
{
if(visible[i].contains(visible[i].querySelector('#allWord')))
{
document.querySelector("#copyWord").onclick = function(){
document.querySelector(".vol").classList.add('hint');
document.querySelector(".vol").classList.add('hint--right');
document.querySelector(".vol").setAttribute("data-hint","Скопировано");
function copytext(el)
{
let $tmp = $("<input>");
$("body").append($tmp);
$tmp.val($(el).text()).select();
document.execCommand("copy");
$tmp.remove();
}
copytext("#visible");
}
}
}
}
})
}, 800);
$('#result').fadeOut(200);
})
}
};
$(".langs").on('change', function(){
$(document).ready(function(){
let arr = [];
//remove attr = $("div").removeAttr("id")
if( $(".rus_lang").prop("selected") )
{
boolfalse = false;
$(".rus_lang").removeAttr("selected");
$(".dig_lang").removeAttr("selected");
$(".rus_lang").attr("selected","selected");
rusAjax();
}else{
}
if( $(".dig_lang").prop("selected") ){
boolfalse = true;
alert("DIG");
$(".rus_lang").removeAttr("selected");
$(".dig_lang").attr("selected","selected");
digAjax();
}
/*
*/
/*скрыть/показать панель аббревиатуры*/
$('i.fa-th').click(function(){
$('#hide').slideToggle(300);
return false;
});
});// ajax
}); //langs change