2012-02-29 3 views
0

У меня естьJQuery нагрузки и обратного вызова проблемы

<div id="config-wrapper"> 
    <button id="submit-success">Continue</button> 
</div> 

В .js, что я загружаю со страницей У меня есть следующие в document.ready:

$("#submit-success").live("click", function(e) { 
    e.preventDefault(); 
    $.get("../html/configurador/houseDetails.html", function(data) { 
     $('#config-wrapper').html(data);  
     reloadTexts(); 
    }); 
}); 

Мои reloadTexts() Функция перемещает все элементы DOM с помощью class = "trad" и добавляет перевод в соответствии с тем, что найдено в lang.es.json файл Это выглядит следующим образом:

function reloadTexts(){ 

    alert("I'm reloading..."); //It popups, meaning function gets called 

    $(".trad").each(function (i) {  
     var key = jQuery(this).attr("key"); 
     var value = _(key) 
     jQuery(this).html(value); 
    }); 
} 

Таким образом, метод обратного вызова (reloadTexts()) определенно вызывается, но, кажется, что .each функция не пересекать DOM, который он получил ...

Конечно, эта проблема существует в IE (версия 8), а не в Chrome и Firefox!

Любые идеи, что может вызвать эту проблему в IE?

Заранее спасибо ...

+0

является '_' функцией легитимного? – charlietfl

+2

Отсутствует точка с запятой после объявления значения var, и вы вызываете функцию _(), которая не указана. У вас возникли какие-либо ошибки в консоли? – mamoo

ответ

1

я не знаю, куда писать это так, я отвечу на свой вопрос ... Проблема в IE было то, что мой HTML действительно не было ... Я читать об этой проблеме где-то еще, когда я пытался ее решить, но, глядя на мой код, я увидел, что все теги были правильно закрыты, вложенная и т.д.

кажется, что я использовал < легенда> </легенда> не упакованные в < вид> </форма> и этого было достаточно для IE на провал ...

Я нахожу это не странно, не существует исключение из рамок JQuery сказать, что это не действует HTML или что есть какая-то проблема с содержанием ...

Во всяком случае, в IE обратные вызовы в load ("resource.html", function() {// callback code}) или $ .get (...) функции не смогут пересекать и обновлять DOM, если содержимое html недействительно , Я бы не стал пари, что этот код должен быть на 100% действителен, но если он у вас не должно быть никаких проблем ... Надеюсь, что это поможет кому-то

+0

Итак, как вы это исправили? Завершили ли вы/исправить недопустимый html-контент перед разбором контента? – codenamezero

Смежные вопросы