И к каждому своему js событию вешаешь делегирование Код (Javascript): document.addEventListener('DOMContentLoaded', function() { document.addEventListener('click', function(event) { var target = event.target; var id = target.getAttribute('id'), video = document.querySelector('#video-article'); if(id == '#knopka1') { getAjax('japan/video-article/ohsawa1.txt', function(data){ video.innerHTML = data; }); } if(id == '#knopka2') { getAjax('japan/video-article/ohsawa2.txt', function(data){ video.innerHTML = data; }); } }) }) function getAjax(url, success) { var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP'); xhr.open('GET', url); xhr.onreadystatechange = function() { if (xhr.readyState>3 && xhr.status==200) {success(xhr.responseText);} if (xhr.status==500) { if( xhr.responseText.length !== 0 ){ console.log( xhr.responseText ); } } }; xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); xhr.send(); return xhr; } И не плоди id, сделай один класс. Добавь ему какой нибудь атрибут. И при нажатии смотри на этот трибут
Смотри, ты можешь его уменьшить так, не плоди id HTML: <button class="k_video" url='japan/video-article/ohsawa1.txt'>knopka1</button> <button class="k_video" url='japan/video-article/ohsawa2.txt'>knopka2</button> <button class="k_video" url='japan/video-article/ohsawa3.txt'>knopka3</button> <button class="k_video" url='japan/video-article/ohsawa4.txt'>knopka4</button> <button class="k_video" url='japan/video-article/ohsawa5.txt'>knopka5</button> <button class="k_video" url='japan/video-article/ohsawa6.txt'>knopka6</button> <button class="k_video" url='japan/video-article/ohsawa7.txt'>knopka7</button> <button class="k_video" url='japan/video-article/ohsawa8.txt'>knopka8</button> <script> document.addEventListener('DOMContentLoaded', function() { document.addEventListener('click', function(event) { var target = event.target; var k_video = target.classList.contains("k_video"), video = document.querySelector('#video-article'); if(k_video) { var url = target.getAttribute('url'); getAjax(url, function(data){ video.innerHTML = data; }); } }) }) </script>
Короче дальше сам) --- Добавлено --- Ты не плодишь под каждый id событие, одно событие на класс. Считываем урл с кнопки. Кода меньше. Ты можешь хоть сотню кнопок создать, js код не увеличится. Выше продемонстрировал
Еще раз спасибо за ваш ответ Я проанализировал В меню, код которого я не навел, url уже занят другой загрузкой из другой базы. Я одним кликом делал две загрузки. Через url грузился видик во iframe, a к ul я цеплял мой любимый id типа =knopka1. Все отлично получается. А нельзя и ваш код сделать без url. Код из строки меню могу выслать
не получается. Я проверил ваш код. Поменял свое меню, по которому одним кликом загружалась по Ajax статья, а по урлу видик, точно на ваше меню, чтобы грузить только статью, и поменял скрипт своей конструкции ajax на ваш. Статья не грузится вообще типа код не рабочий.
На сайте, где значится <html lang="ru"> надо разместить англоязычную статью. Не цитату в абзаце, не абзац, а полновесную отдельную статью с заголовками и абзацами. Как обозначить для нее lang : в каждом абзаце и заголовке или только в теге article или как-то по другому?