日期:2014-05-16  浏览次数:20346 次

JS这样的写法有什么好处
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(){
 },
 choose:function(){
 
}
})我喜欢看这种方式,不过我对JS也很菜鸟, 只是习惯问题,最近刚在大叔那里买了本,javascript设计模式在看。
------解决方案--------------------
这就是面向对象的JS编程方式。
最直观的就是这样实现了命名空间,便于组织
你直接写的话,funA是全局的,就不能再有一个函数叫funA,而且函数多了也没有组织,比如弹窗的一系列方法 和属性,你可以封装到var Dialog = {};里面

参考:
http://msdn.microsoft.com/zh-cn/magazine/cc163419.aspx
http://www.blogjava.net/lizongbo/archive/2006/06/19/53798.html
------解决方案--------------------
这个叫啥,封装!不错。
------解决方案--------------------
没啥好处,就加个prefix而已。
------解决方案--------------------