var listBox = {};
listBox.chickChkBox = function(chk){
chk = $(chk);
if(chk.attr("checked")){
chk.parents("tr").find("td").addClass("choose");
chk.parents("td").attr("class","chk_on");
}else{
chk.parents("tr").find("td").removeClass("choose");
chk.parents("td").attr("class","chk_off");
}
}
listBox.choose = function(){
var courseId = $("#courseId").val();
if(courseId==""){
alert("参数缺失.");
return;
}
var chks = $(".courseId:checked");
if(chks.length<1){
alert("请选择要挂接的培训班.");
return;
}
var str = "";
for(var i = 0; i < chks.length; i++){
str += "refCourseId="+$(chks.get(i)).val()+"&";
}
str += "formMap.COURSE_ID="+courseId;
$.ajax({
cache:false,
type:'POST',
dataType:'text',
url:'/course/cmscoursereferrer/addCourseRefAjax.do',
data:str,
success:function(rst){
rst = new Function("return " + rst)();
if(rst.status){
alert("绑定成功.");
window.close();
}else{
alert("绑定失败.");
}
}
});
}
<button type="button" onclick="listBox.choose();">绑定选择的课程</button>
listBox.chickChkBox = function(chk){
chk = $(chk);
if(chk.attr("checked")){
chk.parents("tr").find("td").addClass("choose");
chk.parents("td").attr("class","chk_on");
}else{
chk.parents("tr").find("td").removeClass("choose");
chk.parents("td").attr("class","chk_off");
}
}
listBox.choose = function(){
var courseId = $("#courseId").val();
if(courseId==""){
alert("参数缺失.");
return;
}
var chks = $(".courseId:checked");
if(chks.length<1){
alert("请选择要挂接的培训班.");
return;
}
var str = "";
for(var i = 0; i < chks.length; i++){
str += "refCourseId="+$(chks.get(i)).val()+"&";
}
str += "formMap.COURSE_ID="+courseId;
$.ajax({
cache:false,
type:'POST',
dataType:'text',
url:'/course/cmscoursereferrer/addCourseRefAjax.do',
data:str,
success:function(rst){
rst = new Function("return " + rst)();
if(rst.status){
alert("绑定成功.");
window.close();
}else{
alert("绑定失败.");
}
}
});
}
<button type="button" onclick="listBox.choose();">绑定选择的课程</button>
function funA(a){
......}
listBox=({
chickChkBox:function(){
},
choose:function(){
}
})我喜欢看这种方式,不过我对JS也很菜鸟, 只是习惯问题,最近刚在大叔那里买了本,javascript设计模式在看。
最直观的就是这样实现了命名空间,便于组织
你直接写的话,funA是全局的,就不能再有一个函数叫funA,而且函数多了也没有组织,比如弹窗的一系列方法 和属性,你可以封装到var Dialog = {};里面参考:
http://msdn.microsoft.com/zh-cn/magazine/cc163419.aspx
http://www.blogjava.net/lizongbo/archive/2006/06/19/53798.html
编写高质量代码--Web前端开发修炼之道
至少copy和组织代码的时候 会很简单而且以后方便重构成对象化设计
用一个对象(你代码中的listBox)来作为命名空间,把彼此有关系或者共同完成某个功能的一些方法(你代码中的chickChkBox,choose函数)或属性都挂靠到这个对象上。
这样既避免了污染全局变量,又实现了简单的封装,从而代码变得简洁和规范。