Try
var _jquery = function () {
$(document).ready(function () {
// do jquery stuff
console.log("jQuery loaded");
$("#jq").html("jquery version " + jQuery().jquery + " ready")
})
};
var _bootstrap = function () {
// do bootstrap stuff
console.log("bootstrap loaded");
$(".btn").trigger("click")
.promise().done(function(el) {
setTimeout(
function() {
$(el).trigger("click")
}, 3000
)
});
};
var _load = function (url1, url2, test, callback) {
var script = document.createElement("script");
script.src = url1;
script.type = "text/javascript";
var head = document.getElementsByTagName("head")[0];
head.appendChild(script);
setTimeout(function () {
if (test()) {
_load(url2, null, function() {return false}, callback)
} else {
callback()
}
}, 3000)
};
var _scripts = [
["//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"
, "//code.jquery.com/jquery-1.11.1.min.js", function () {
return !window.jQuery
},
_jquery],
["//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js",
"//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.2.0/js/bootstrap.min.js", function () {
return (typeof $().emulateTransitionEnd == 'function') == false
},
_bootstrap]
];
_scripts.forEach(function (v) {
_load(v[0], v[1], v[2], v[3]);
});
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Bootstrap 101 Template</title>
<!-- Bootstrap -->
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet">
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<!-- Include all compiled plugins (below), or include individual files as needed -->
<!-- Small modal -->
<button class="btn btn-primary" data-toggle="modal" data-target=".bs-example-modal-sm">Small modal</button>
<div class="modal fade bs-example-modal-sm" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" aria-hidden="true">
<div class="modal-dialog modal-sm">
<div class="modal-content">
<div id="jq"></div>
</div>
</div>
</div>
</body>