0
我想編寫一個在每個apge上運行的腳本 - 使用我剛剛加載的jquery插件 - 並在所有插件加載後首先運行它。根據意見迄今爲止,這需要確定和Require.js運行的模塊...如何在使用require.js之後通過簡單的腳本引用訪問jquery全局名稱空間?
我有頁腳部分中包含我Require.js代碼,因此CMS:
<!-- special version of jQuery with RequireJS built-in -->
script data-main="/addons/shared_addons/themes/base/js/main" src="/addons/shared_addons/themesbase/js/require-jquery.js" type="text/javascript"> /script
...我main.js是相當標準:
// urlArgs: "bust=v1" // for release
require.config({
urlArgs: "bust=" + (new Date()).getTime(),
paths: {
Corner: "/addons/shared_addons/themes/base/js/jquery.corner",
JQForm: "/addons/shared_addons/themes/base/js/jquery.form",
Gritter: "/addons/shared_addons/themes/base/js/jquery.gritter.min",
JQUI: "/addons/shared_addons/themes/base/js/jquery-ui-1.8.21.custom.min",
TimePicker: "/addons/shared_addons/themes/base/js/jquery.ui.timepicker",
DateFormat: "/addons/shared_addons/themes/base/js/date.format",
countdown: "/addons/shared_addons/themes/base/js/jquery.countdown.min",
JQMustache: "/addons/shared_addons/themes/base/js/jquery-Mustache",
Mustache: "/addons/shared_addons/themes/base/js/mustache",
Kendo: "/addons/shared_addons/themes/base/js/kendo.web.min",
Chosen: "/addons/shared_addons/themes/base/js/chosen.jquery.min",
EveryPage: "/addons/shared_addons/themes/base/js/another_doc_ready_script"
}
});
require([
'jquery',
'Corner',
'JQForm',
'Gritter',
'JQUI',
'TimePicker',
'DateFormat',
'countdown',
'JQMustache',
'Mustache',
'Kendo',
'Chosen'
],
[ "EveryPage" ],
function($) {
//run
$(function() {
console.log('get everything we could possibly need');
});
});
「another_doc_ready_script.js」 包含 「everypage」 模塊定義:
console.log('here');
define("EveryPage",
[
'jquery',
'Corner',
'JQForm',
'Gritter',
'JQUI',
'TimePicker',
'DateFormat',
'countdown',
'JQMustache',
'Mustache',
'Kendo',
'Chosen'
],
function($) {
console.log('in everypage');
$(document).ready(function() {
console.log('in everypage doc ready');
$("body").removeClass('nodisplay');
}); // document ready
console.log('leaving everypage');
} // function-define-require
); // define-require
編輯:Bergi的評論使this更有意義。我已經修改了上面的代碼,但它仍然不起作用。壓縮。納達。沒有控制檯日誌語句或錯誤。這是一個常見的用法,但我沒有找到一個簡單的例子。
謝謝,Bergi。我根據你的評論嘗試了其他的東西,但我仍然沒有一個工作的例子。更新主要問題以反映當前狀態。 – shamelesshacker 2012-08-04 14:52:24
因此,現在可以在網絡標籤中看到腳本加載(在'define'之前嘗試一個日誌語句),但是在那裏定義的模塊沒有執行? – Bergi 2012-08-04 15:11:45
no sir,現在「網絡」標籤中沒有加載「another_doc_ready_script.js」腳本。儘管如此,其他所有內容都與這些插件位於相同的目錄中。 (做了更多的嘗試[鏈接] http://backbonetutorials.com/organizing-backbone-using-modules/;見上) – shamelesshacker 2012-08-04 15:29:28