Javascript – Calling $(document).ready(function() {…}); from another file

javascriptjqueryunit testing

As the title suggested, I'm trying to call the $(document).ready(function() {…}); from another file. The code snippet is as below:

Source file:

$(document).ready(function () {
    alert('document.ready function called!');
    // a lot of code
}

And in the test file:

TestFile.prototype.testDocumentReadyContents = function () {
    // test code here trying to call the document.ready function
}

I haven't had any success on it yet. I have tried document.ready.apply(), trigger('ready'), overriding the document.ready function… but just couldn't call it. FYI I'm invoking it as part of my unit test.

Thanks.

Best Answer

GOOD WAY

$(document).ready(documentReady);

function documentReady() {
    alert('document.ready function called!');
    // a lot of code
}

TestFile.prototype.testDocumentReadyContents = function () {
    documentReady();
}

Hackish Way

TestFile.prototype.testDocumentReadyContents = function () {
    $.readyList[0]();
}