Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.12.2014, 22:15
Профессор
Отправить личное сообщение для Tecvid Посмотреть профиль Найти все сообщения от Tecvid
 
Регистрация: 13.12.2013
Сообщений: 175

.innerHTML и .html()
целый день уже не могу понять почему так происходит, значит есть элемент, при клике по нему создаётся новый блок, и потом через ajax данные попадают в этот блок

var form = document.createElement('div');
form.setAttribute('id', 'reg');
form.innerHTML = '<img src="/assets/img/loading.gif" width="227" height="28" alt="Loading..." style="margin-left:-10px;margin-top:-10px;">';
document.body.appendChild(form);

ajax({
    url: '/reg/',
    cache: false,
    success: function(data) {
        form.innerHTML = data;
    }
});


data в себе также содержит код js необходимый для функционирования полученных данных, так вот, всё вроде получается, данные попадают куда надо, в том числе и js код, но загруженный js не работает, что странно, когда подключаю jquery и пишу $('#reg').html(data), то всё прекрасно работает, попробовал сделать вот так: document.getElementById('reg').innerHTML = data;
не помогло, попробал убрать src у тега script и вписать код прямо в нём (ну а мало ли что), тоже не помогло, вобщем как ни стараюсь скрипт не хочет работать без .html(), а только из-за этого подключать jquery слишком жирно, подскажите пожалуйста как быть
Ответить с цитированием
  #2 (permalink)  
Старый 06.12.2014, 22:43
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Tecvid,
элементы c js в jQuery нун подгружать на страницу таким макаром
Цитата:
$(элемент с js).appendTo(куды надо);
============
В нативном js, чтобы скрипт заработал нун сначало создать элемент:
var s = document.createElement('script');
Затем добавить содержимое скрипта:
s.text = cодержимое;
Затем добавить скрипт на страницу:
document.body.appendChild(s);
=============
var s = document.createElement('script');
s.text = "alert('A')";
document.body.appendChild(s);

Последний раз редактировалось Deff, 06.12.2014 в 22:52.
Ответить с цитированием
  #3 (permalink)  
Старый 06.12.2014, 22:49
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Deff,
а jQuery тут причём?
Ответить с цитированием
  #4 (permalink)  
Старый 06.12.2014, 22:50
Профессор
Отправить личное сообщение для Tecvid Посмотреть профиль Найти все сообщения от Tecvid
 
Регистрация: 13.12.2013
Сообщений: 175

Сообщение от Deff Посмотреть сообщение
элементы c js в jQuery нун подгружать на страницу таким макаром
вы вообще вникли в суть моего вопроса?)
Ответить с цитированием
  #5 (permalink)  
Старый 06.12.2014, 22:53
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от Tecvid
вы вообще вникли в суть моего вопроса?)
Разучился
===============
Приведите конкретный пример содержимого формы с исполняемым js - Так будет проще решать, чем на пальцах!
Ответить с цитированием
  #6 (permalink)  
Старый 06.12.2014, 22:55
Профессор
Отправить личное сообщение для Tecvid Посмотреть профиль Найти все сообщения от Tecvid
 
Регистрация: 13.12.2013
Сообщений: 175

Сообщение от Deff Посмотреть сообщение
============
В нативном js, чтобы скрипт заработал нун сначало создать элемент:
var s = document.createElement('script');
Затем добавить содержимое скрипта:
s.text = cодержимое;
Затем добавить скрипт на страницу:
document.body.appendChild(s);
=============
var s = document.createElement('script');
s.text = "alert('A')";
document.body.appendChild(s);
а какая разница? если добавить содержимое после, то это всё равно что добавить содержимое в изначально существующий элемент, и ещё у меня проблема не с добавлением, а с работой скрипта который является частью содержимого
Ответить с цитированием
  #7 (permalink)  
Старый 06.12.2014, 22:58
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от рони Посмотреть сообщение
Deff,
а jQuery тут причём?
А Аjax там откель ?
Если нативно то уж XMLHttpReques
Ответить с цитированием
  #8 (permalink)  
Старый 06.12.2014, 22:59
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Tecvid,
Аякс - из jQuery ? или откель ?
Ответить с цитированием
  #9 (permalink)  
Старый 06.12.2014, 23:00
Профессор
Отправить личное сообщение для Tecvid Посмотреть профиль Найти все сообщения от Tecvid
 
Регистрация: 13.12.2013
Сообщений: 175

Сообщение от Deff Посмотреть сообщение
Приведите конкретный пример содержимого формы с исполняемым js - Так будет проще решать, чем на пальцах!
<link type="text/css" rel="stylesheet" href="/assets/css/reg.css">

<div id="note"></div>

<img id="close" src="assets/img/close.gif" width="7" height="8" alt="x">

<form id="regForm" name="reg" action="/reg/register/" method="post">
    <input id="email" class="standby" type="text" name="email" maxlength="100" value="E-mail">
    
    <input id="passP" class="standby" type="text" value="Şifrə"><input id="pass" class="standby" type="password" name="pass"  maxlength="50" value="">
    
    <input id="confP" class="standby" type="text" value="Şifrəni təsdiqləyin"><input id="conf" class="standby" type="password" name="conf" maxlength="50" value="">
    
    <input id="fname" class="standby" type="text" name="fname" maxlength="50" value="Ad">
    
    <input id="sname" class="standby" type="text" name="sname" maxlength="50" value="Soyad">
    
    <span class="radio">
        <input id="M" type="radio" name="gender" value="m">
        <label id="male" for="M">Kişi</label>
    </span>
    <span class="radio">
        <input id="F" type="radio" name="gender" value="f">
        <label id="female" for="F">Qadın</label>
    </span>
    
    <input id="bd" class="born standby" type="text" name="bd" maxlength="2" value="Gün">
    
    <input id="bm" class="born standby" type="text" name="bm" maxlength="2" value="Ay">
    
    <input id="by" class="born standby" type="text" name="by" maxlength="4" value="İl">
    
    <input id="submit" type="submit" name="submit" value="Qeydiyyat">
</form>

<input id="auth2" type="button" value="Giriş">
<script type="text/javascript" src="/assets/js/reg.js"></script>

Последний раз редактировалось Tecvid, 06.12.2014 в 23:03.
Ответить с цитированием
  #10 (permalink)  
Старый 06.12.2014, 23:01
Профессор
Отправить личное сообщение для Tecvid Посмотреть профиль Найти все сообщения от Tecvid
 
Регистрация: 13.12.2013
Сообщений: 175

Сообщение от Deff Посмотреть сообщение
Tecvid,
Аякс - из jQuery ? или откель ?

function ajax(options) {
    function getXmlHttp() {
        var xmlhttp;
        try {
            xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (E) {
                xmlhttp = false;
            }
        }
        if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
            xmlhttp = new XMLHttpRequest();
        }
        return xmlhttp;
    }
    
    var xmlhttp = getXmlHttp(),
        type = options.type || 'GET';
    xmlhttp.open(type, options.url, true);
    xmlhttp.setRequestHeader('X-REQUESTED-WITH', 'XMLHttpRequest');
    xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4) {
            if(xmlhttp.status == 200) {
                options.success(xmlhttp.responseText);
            }
        }
    };
    var data = options.data || null;
    xmlhttp.send(data);
}
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с .html() в родительского документа FreeFly19 jQuery 3 05.11.2014 19:36
Присвоить метод .fadeOut() методу .html() Алек jQuery 7 24.06.2013 17:45
jquery .text() и .html() ето разние веши ? dadli Общие вопросы Javascript 2 20.05.2012 20:03
Как создать задержку перед .html() Could jQuery 1 17.07.2011 13:42
Jquery .html() вырезает теги ART-DELI jQuery 7 18.04.2011 11:49