这是我的jquery工作得很好
$(document).ready(function(){
$('#new_average, #max_occupancy').keyup(function(){
factor = $(".industry_picker option:checked").attr("title");
average = $('#new_average').val();
if($('#new_average').val().indexOf("$") != -1){
average = average.substring(1);
}
if($("#max_occupancy").val() != ""){
max_occupancy = $("#max_occupancy").val();
max_total = ((average * factor) * max_occupancy) * 30;
if(factor != ""){
$("#new_calc").val("$" + max_total + ".00");
}
}
});
});
Run Code Online (Sandbox Code Playgroud)
但问题是我需要这个来启动keyup和on
$(".industry_picker")
Run Code Online (Sandbox Code Playgroud)
改变....我知道我可以复制这个确切的功能,并有一个
$(".industry_picker").change
Run Code Online (Sandbox Code Playgroud)
但我觉得这是一个黑客...是否有一个更好的方式来拥有
$('#new_average, #max_occupancy").keyup
Run Code Online (Sandbox Code Playgroud)
和
$(".industry_picker").change
Run Code Online (Sandbox Code Playgroud)
在相同的选择器或更好的方式实现这一点,而无需再次复制整个功能
不要使用匿名函数.
function myCallback(){
factor = $(".industry_picker option:checked").attr("title");
average = $('#new_average').val();
if($('#new_average').val().indexOf("$") != -1){
average = average.substring(1);
}
if($("#max_occupancy").val() != ""){
max_occupancy = $("#max_occupancy").val();
max_total = ((average * factor) * max_occupancy) * 30;
if(factor != ""){
$("#new_calc").val("$" + max_total + ".00");
}
}
}
$('#new_average, #max_occupancy').keyup(myCallback);
$('.industry_picker').change(myCallback);
Run Code Online (Sandbox Code Playgroud)
旁注:你不使用var任何地方,这意味着只有一个每个变量的副本:factor,average,max_occupancy,和max_total.引入全局状态是草率编码,使程序更难维护和调试.用你的变量声明你的变量var.
推荐阅读:MDC var文档.
| 归档时间: |
|
| 查看次数: |
61 次 |
| 最近记录: |