有数百个 jQuery 代码片段,琐碎、神秘,有时甚至是错误的。很少有一个自包含的完整示例。这段代码是否使用 Crockford 闭包并正确放置在 ready() 函数中?如果不是,应该如何改进或修复?这是矫枉过正吗?我试图将用户界面与最终模拟一个简单微控制器的程序逻辑分开。此示例在按下 Step 按钮时递增程序计数器。它工作正常。
// ==================================================================
$(document).ready(function(){
// ==============================================================
// The simulator code - NO UI CODE HERE
// ==============================================================
var sim = (function(){
// Private vars
var pc = 0; // Program Counter
// Public functions
return {
step: function(){
pc += 1;
return pc;
}
}
}());
// ==============================================================
// jQuery UI Code - NO SIMULATOR CODE HERE
// ==============================================================
var ui = (function($){
// Private vars
var step = $('#step'), // <button id="step">Step</button>
pc = $("#pc"); // <p id="pc">Program Counter = 0</p>
// Private functions
step.click(function() {
pc.html('Program Counter = ' + sim.step());
});
}(jQuery));
});
// ==================================================================