Метод «Onclick» не работает с файлами, добавленными с «

Ну, моя проблема в том, что у меня есть сайт по недвижимости. Он имеет боковую панель справа с кнопками для входа в различные разделы, «основная» часть, которая слева и занимает 70% экрана, - это место, где делается отображение всех домов на продажу, вызовы с использованием метода onclick="", который в свою очередь выполняет функцию JQuery + AJAX , которая выглядит следующим образом:

function cargarDoc(url) {
$.ajax({
    url : url,
    dataType: "text",
    success : function (data) {
        $(".1").html(data);
    }
});}

И HTML-код выглядит следующим образом:

<aside>
        <div class="widget">
            <p class="s" href="" onclick="cargarDoc('aptoarriendo.php');cargarDoc2('aptoventa.php');"><i class="fa fa-building-o"></i>Apartamentos</p>
            <p class="s" href="" onclick="cargarDoc('casaarriendo.php');cargarDoc2('casaventa.php');"><i class="fa fa-home"></i>Casas</p>
            <p class="s" href="" onclick="cargarDoc3('calle11con12.html')"><i class="fa fa-home"></i>LOL</p>
        </div>
    </aside>

Пока все хорошо, список домов успешно добавлен в основной раздел, как вы можете видеть на следующем рисунке: introducir la descripción de la imagen aquí

Затем, когда делаете Наведите в доме, отображается кнопка с надписью «Информация», и идея состоит в том, что, щелкнув, метод onclick="" обновляет этот основной раздел другим html-файлом, который показывает подробную информацию о доме. , но, как бы я ни добавил onclick="" с соответствующей функцией, при нажатии абсолютно ничего не происходит. Чтобы проверить, я также поставил кнопку «LOL», которая по какой-то причине, если вы обновите раздел, как должна делать кнопка с изображением. Моя теория заключается в том, что в боковой панели это работает, потому что это отдельный раздел, в который он будет обновлен, а в самом разделе он не работает, потому что не может обновляться сам. Посмотрим, попадется ли кто-нибудь на место.

Большое спасибо заранее и привет!

0
задан 22.01.2017, 21:17
0 ответов

Разум, - потому что слушатели событий присоединяются, когда документ загружается в этапе parseo документа. Тогда, когда ты добавляешь HTML динамического способа, нужно направлять каким-то образом в parsear scripts для того, чтобы ассоциировались правильно события с добавленным HTML recientamente.

То, что ты можешь делать:

  1. Из-за каждый сдержись иметь этикетку script.
  2. Как только был добавлен HTML пере-оценивать scripts посредством eval.
  3. Использовать главный файл динамического груза scripts.

По моему мнению, лучшая форма - выбор два и самая худшая выбор 3. Проблема несмотря на то, что использует eval дело в том, что это не конечно и возможно использовать для злонамеренных концов.

Грузя dinámicamente scripts

Это такой простой как создавать элемент script и помещать его в признак src адрес рукописного шрифта.

function loadScript (fileurl) {
  let script = document.createElement('script');
  script.src = fileurl;
  document.body.append(script);
}

В success твоей просьбы AJAX, только ты должен вводить рукописный шрифт для этого документа:

success : function (data) {
  $(".1").html(data);
  loadScript('myscript.js');
}

Оценивая scripts под требованием

Это самый худший выбор, но если для тебя не имеет значение много безопасность, может быть, ты будьте полезным.

let scripts = document.getElementsByTagName('script')
for (let i=0; i<scripts.length; i++) {
    eval(scripts[i].innerHTML);
}
0
ответ дан 03.12.2019, 17:34

Теги

Похожие вопросы