$("#SpecialAptitude").on("change", function () { CheckType($(this)) } ) $("#SpecialAptitude").on("change", CheckType($(this)) ) 为什么第一个有效果 第二个没效果 请问下有什么区别吗?
因为语法是:
$("#id").on("事件名称",function(){//TODO});
而不是:
$("#id").on("事件名称",//TODO);
$("#id").on("事件名称",function(){//TODO});
function(){//TODO} 不是相当于一个匿名方法吗? 在里面写语句
我调用自己写的方法 为什么还要加 function(){} 呀
@~雨落忧伤~: 是啊,function(){//TODO} 是个匿名函数,但是你的CheckType不是匿名函数吖
@七芯海棠: 不是第二个参数是调用的方法吗? 如果是匿名方法就是 function(){//TODO}
方法就写方法吗?
@~雨落忧伤~:
$("#id").on("事件名称",匿名函数);
貌似得这么用哈,匿名函数里去调用你要进行的方法(CheckType),当然如果你发现可以$("#id").on("事件名称",非匿名函数);这么用的话,希望能告知一声,我也好学习学习
@七芯海棠: 0.0!
CheckType($(this)) 是执行这个函数得到的返回值,你这里应该给事件处理程序传一个函数
$("#SpecialAptitude").on("change", CheckType)
这个时候 CheckType 函数的第一个参数是事件对象,所以你得改一改这个函数的主体
function CheckType(obj) {
var optionVal = $(obj).find("option:selected").val();
if (optionVal == 1) {
$("#ProgramDiv").css('display', 'block');
}
else {
$("#ProgramDiv").css('display', 'none');
}
}
函数是这样的
如果 $("#SpecialAptitude").on("change", CheckType) 这样调用可以嘛? 参数呢?
function CheckType(e) {
$(this) 可以直接在这里获取 this 就是当前元素
}
@by.Genesis:
function CheckType(e) {
$(this) 可以直接在这里获取 this 就是当前元素
}
函数的 参数 e
这样调 $("#SpecialAptitude").on("change", CheckType) 默认就是 $("#SpecialAptitude") 吗?
@~雨落忧伤~: e 是事件对象 this 才是触发事件处理程序的 dom 元素
@by.Genesis: 那个不是方法的参数吗 传入一个参数
@~雨落忧伤~: 你 console.log 出来体会体会
绑定事件的方法:
$(标签).事件(函数内容) $(标签).bind("事件",函数名) $(标签).on("事件",函数名)