Я пытаюсь загрузить HTML-код через Ajax. HTML имеет функцию, назначенную ему атрибутом ONCLICK. Теперь, когда я выполняю код, функция полностью игнорируется. HTML загружен отлично.
Ниже представлена упрощенная версия того, что я пытаюсь сделать.
Код PHP для создания HTML (gethtml.php):
$html = '<a onclick = "thefunction()">Click this to trigger JS function</a>';
$data = array(
'html' => $html
);
echo json_encode($data);
Загрузка HTML-кода через javascript (main.html):
function load_HTML()
{
$.ajax({
url:"actions/gethtml.php",
method:"POST",
dataType:"JSON",
success:function(data)
{
$('#container_id').html(data.html);
}
})
}
Функция Javascript для загруженного HTML (main.html):
function thefunction(){
//any function
}
Надеюсь, кто-нибудь мне поможет!
Где ты берешь tabledata?
Ой! Мой плохой, я его поменял.
вы пробовали onclick = "return thefunction ();" вместо onclick = "thefunction ()"?
Так что теперь он работает? Вам нужно проверить свою JS-консоль и выяснить, какую ошибку он кричит на вас ...
Проверьте консоль инструментов разработчика браузера на наличие ошибок.
@MonkeyZeus Нет, это было как раз в примере для этого вопроса.
Умм, хорошо, это был бесполезный пример. В любом случае, какую ошибку вы получаете в консоли JS?
@elk Тоже не работает ..
@MonkeyZeus Нет, все игнорируется
Должно работать нормально, как показано в этой демонстрации jsfiddle.net/bz5oe2yq
Использовать делегирование событий для динамически создаваемых элементов: stackoverflow.com/questions/16598213/…
Без onclick: jsfiddle.net/7Lc18vdb/2
@BillyG Спасибо !! Это сработало отлично!
@ MichaelRöhrig он не упомянул об использовании jQuery.
@WiboKuipers, вы не должны использовать функциональность onClick html, она считается устаревшей и плохой практикой. Если вы используете какую-то структуру, создайте привязки с ней, а если нет, вам все равно лучше использовать прослушиватели событий - w3schools.com/js/js_htmldom_eventlistener.asp
@Dropout Я предположил, что он это сделал из-за своего кода, где он это делает ;-)



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Откуда взялся
data.tabledata? Ваш PHP, конечно же, его не поддерживает. Беглый взгляд на вашу JS-консоль быстро указал бы вам на некоторые проблемы.