2013-02-17 3 views
0

Что было бы лучшим способом комбинировать приведенные ниже инструкции jQuery, которые все, похоже, делают то же самое, но обрабатывают разные события?Сочетание аналогичных операторов jQuery

Я надеюсь сделать мой код более эффективным, выполнив это.

$(document).on('change click blur', '.roomFac', function() { 
     var park = $("#park2").val(); 
     var lecturestyle = $("#lecture_style2").val(); 
     var roomstructure = $("#room_structure2").val(); 
     var groupsize = $("#groupSize2").val(); 
     var facilities = ""; 
     $('select[name*=roomFac]').each(function() { 
      facilities += $(this).val(); 
      facilities += ","; 
     }); 
     var dataString = 'park=' + park + '&' + 'lecturestyle=' + lecturestyle + '&' + 
      'roomstructure=' + roomstructure + '&' + 'groupsize=' + groupsize + '&' + 
      'facilities=' + facilities; 
     $.ajax({ 
      type: "POST", 
      url: "process_timetableMon2.php", 
      data: dataString, 
      cache: false, 
      success: function (html) { 
       $('#mon').html(html); 
      } 
     }); 
    }); 

    // search - park2 

    $("#park2").on("change click blur", function() { 
     var park = $("#park2").val(); 
     var lecturestyle = $("#lecture_style2").val(); 
     var roomstructure = $("#room_structure2").val(); 
     var groupsize = $("#groupSize2").val(); 
     var facilities = ""; 
     $('select[name^=roomFac]').each(function() { 
      facilities += $(this).val(); 
      facilities += ","; 
     }); 
     facilities = substring(0, facilities.length - 1) 
     var dataString = 'park=' + park + '&' + 'lecturestyle=' + lecturestyle + '&' + 
      'roomstructure=' + roomstructure + '&' + 'groupsize=' + groupsize + '&' + 
      'facilities=' + facilities; 
     alert(dataString); 
     $.ajax({ 
      type: "POST", 
      url: "process_timetableMon2.php", 
      data: dataString, 
      cache: false, 
      success: function (html) { 
       $('#mon').html(html); 
      } 
     }); 
    }); 

    // search - lecturestyle2 

    $("#lecturestyle2").on("change click blur", function() { 
     var park = $("#park2").val(); 
     var lecturestyle = $("#lecture_style2").val(); 
     var roomstructure = $("#room_structure2").val(); 
     var groupsize = $("#groupSize2").val(); 
      var facilities = $('#roomFac').val().join(','); 
     var dataString = 'park=' + park + '&' + 'lecturestyle=' + lecturestyle + '&' + 
      'roomstructure=' + roomstructure + '&' + 'groupsize=' + groupsize + '&' + 
      'facilities=' + facilities; 
     $.ajax({ 
      type: "POST", 
      url: "process_timetableMon2.php", 
      data: dataString, 
      cache: false, 
      success: function (html) { 
       $('#mon').html(html); 
      } 
     }); 
    }); 

    // search - room_structure2 

    $("#room_structure2").on("change click blur", function() { 
     var park = $("#park2").val(); 
     var lecturestyle = $("#lecture_style2").val(); 
     var roomstructure = $("#room_structure2").val(); 
     var groupsize = $("#groupSize2").val(); 
      var facilities = $('#roomFac').val().join(','); 
     var dataString = 'park=' + park + '&' + 'lecturestyle=' + lecturestyle + '&' + 
      'roomstructure=' + roomstructure + '&' + 'groupsize=' + groupsize + '&' + 
      'facilities=' + facilities; 
     $.ajax({ 
      type: "POST", 
      url: "process_timetableMon2.php", 
      data: dataString, 
      cache: false, 
      success: function (html) { 
       $('#mon').html(html); 
      } 
     }); 
    }); 

    // search - groupSize2 

    $("#slider2").on("change click blur", function() { 
     var park = $("#park2").val(); 
     var lecturestyle = $("#lecture_style2").val(); 
     var roomstructure = $("#room_structure2").val(); 
     var groupsize = $("#groupSize2").val(); 
       var facilities = $('#roomFac').val().join(','); 
     var dataString = 'park=' + park + '&' + 'lecturestyle=' + lecturestyle + '&' + 
      'roomstructure=' + roomstructure + '&' + 'groupsize=' + groupsize + '&' + 
      'facilities=' + facilities; 
     $.ajax({ 
      type: "POST", 
      url: "process_timetableMon2.php", 
      data: dataString, 
      cache: false, 
      success: function (html) { 
       $('#mon').html(html); 
      } 
     }); 
    }); 
+1

Следует ли назвать обратные вызовы функциями и предоставить va в качестве параметров? – hd1

ответ

0

Создать функцию и использовать что в качестве обработчика:

$(document).on('change click blur', '.roomFac', eventFunc); 
$("#park2").on("change click blur", eventFunc); 
$("#lecturestyle2").on("change click blur", eventFunc); 
$("#room_structure2").on("change click blur", eventFunc); 
$("#slider2").on("change click blur", eventFunc); 

function eventFunc() 
{ 
    var park = $("#park2").val(); 
    var lecturestyle = $("#lecture_style2").val(); 
    var roomstructure = $("#room_structure2").val(); 
    var groupsize = $("#groupSize2").val(); 
    var facilities = ""; 
    $('select[name*=roomFac]').each(function() { 
     facilities += $(this).val(); 
     facilities += ","; 
    }); 
    var dataString = 'park=' + park + '&' + 'lecturestyle=' + lecturestyle + '&' + 
     'roomstructure=' + roomstructure + '&' + 'groupsize=' + groupsize + '&' + 
     'facilities=' + facilities; 
    $.ajax({ 
     type: "POST", 
     url: "process_timetableMon2.php", 
     data: dataString, 
     cache: false, 
     success: function (html) { 
      $('#mon').html(html); 
     } 
    }); 
} 
0

Использование запятая:

$('#park2,#lecturestyle2,#roomstructure2,#slider2').add(document).on(/* blah blah blah*/) 

Поскольку вы не можете положить $('document') в $('somestring') форме, я добавив его в список Jquery через .add()

Смежные вопросы