2013-08-18 3 views
-1

Использование ajax для загрузки моего контента динамически. Мне нужно, чтобы загрузить файл яваскрипта после того, как я нажимаю на кнопке:jQuery.getScript загружает файл javascript перед DOM

<a id="element" href="http://example.com/test">button</a> 

Но ниже сценарий загружает файл JavaScript, прежде чем был загружен DOM. Как я могу это решить?

$("#element").click(function() { 
    jQuery.getScript("example.com/jsfile.js?ver=0.9"); 
}); 

скриншот поджигатель: http://img607.imageshack.us/img607/1630/4mu7.png

1-ая строка загруженного файла JavaScript, который вызывается через выше функции и 3-й строке страницы, которая загружается.

+0

Вы нажимаете кнопку до того, как загружается дом? – Musa

+0

Да, как вам удается запускать эту функцию до готовности DOM? – Jon

+0

Когда вы нажимаете 'a # element', он переходит на другую страницу' http: // example.com/test'. –

ответ

0

Working JSBin - http://jsbin.com/uJUBAru/1/edit

Jquery использование подхода document.ready()

$(document).ready(function(){ 
    $("#element").click(function() { 
    $.getScript("example.com/jsfile.js?ver=0.9").done(function(script, textStatus) { 
     console.log(textStatus); 
    }) 
    .fail(function(jqxhr, settings, exception) { 
     console.log('error'); 
    }); 
    }); 
}); 
+0

кнопка загружает содержимое div «example.com/test» через ajax на главный контент div на главной странице «example.com». Однако сетевая панель Firebug сообщает на графике водопада, что javascript загружается до загрузки страницы «http://example.com/test». – Eric

+0

@ Эрик: посмотрите на мой jsbin http://jsbin.com/uJUBAru/1/edit .. это может дать вам некоторую подсказку – Amith

+0

Thaks Amith, но проблема только в том, что javascript загружается до DOM (example.com /контрольная работа). См. Скриншот выше в моем вопросе – Eric

0

Я установил тайм-аут е или функции. Теперь страница загружается и через 5 секунд загружается javascript. Хотя это решение, оно не очень безопасно.

Любые другие предложения?

$("#element").click(function() 
{setTimeout(function(){ 
    jQuery.getScript("example.com/jsfile.js?ver=0.9"); 
}, 5000); 

}); 
Смежные вопросы