结合变化,模糊和准备好的回调方法

时间:2013-02-17 01:24:18

标签: jquery

有什么方法可以合并以下3个jQuery语句吗?

$("#search_building").change(function () {
    var building = $("#search_building").val();
    var room = $("#search_room").val();
    var dept = $("#dept").val();
    var dataString = 'room=' + room + '&' + 'building=' + building + '&' + 'dept=' + dept;
    $.ajax({
        type: "POST",
        url: "process_building.php",
        data: dataString,
        cache: false,
        success: function (html) {
            $('#search_room').html(html);
        }
    });
    $.ajax({
        type: "POST",
        url: "process_timetableMon.php",
        data: dataString,
        cache: false,
        success: function (html) {
            $('#grid2_mon').html(html);
        }
    });
});

$("#search_building").blur(function () {
    var building = $("#search_building").val();
    var room = $("#search_room").val();
    var dept = $("#dept").val();
    var dataString = 'room=' + room + '&' + 'building=' + building + '&' + 'dept=' + dept;
    $.ajax({
        type: "POST",
        url: "process_building.php",
        data: dataString,
        cache: false,
        success: function (html) {
            $('#search_room').html(html);
        }
    });
    $.ajax({
        type: "POST",
        url: "process_timetableMon.php",
        data: dataString,
        cache: false,
        success: function (html) {
            $('#grid2_mon').html(html);
        }
    });
});

$("#search_building").ready(function () {
    var building = $("#search_building").val();
    var room = $("#search_room").val();
    var dept = $("#dept").val();
    var dataString = 'room=' + room + '&' + 'building=' + building + '&' + 'dept=' + dept;
    $.ajax({
        type: "POST",
        url: "process_timetableMon.php",
        data: dataString,
        cache: false,
        success: function (html) {
            $('#grid2_mon').html(html);
        }
    });
});

1 个答案:

答案 0 :(得分:4)

jQuery on支持将相同的处理程序绑定到多个事件,并且是在jQuery 1.7 +中使用的适当方法。

$("#search_building").on("change blur", function () {
    // your code here
});

对于你的就绪处理程序,没有真正的ready事件,jQuery通常会忽略那种情况下的选择器,并且在任何情况下都可以在DOM上执行。您只需在DOM ready上触发blur

$(function() {
    $('#search_building').blur();
});