我们做页面级联的时候经常会用到ajax处理数据,会为下拉菜单编写change事件。

    //城市和区域联动
$("#City").change(function () {
var cityValue = $("#City").val();
if (cityValue == -1) {
return;
}
$.ajax({
url: "/BI/GetAreaInfo",
type: "GET",
data: { Id: cityValue },
timeout: 5000,
async: false,
dataType: "json",
success: function (result) {
$("#Area").empty();
$("#Area").append("<option value='-1'>请选择区域</option>");
for (var i = 0; i < result.AreaInfo.length; i++) {
$("<option value='" + result.AreaInfo[i].ID + "'>" + result.AreaInfo[i].Name + "</option>").appendTo('#Area');
}
}
});
});
做编辑功能的时候,如果涉及到级联信息,我们会在绑定数据的时候给下拉框赋值:(下面代码一般都放在页尾部)

<input type="hidden" value="@Model.AreaId" id="hdAreaID" />
<input type="hidden" value="@Model.CityId" id="hdCityID" />

<script type="text/javascript">

var areaId = $("#hdAreaID").val();
var cityId = $("#hdCityID").val();

$("#City").val(cityId);
$.ajax({
  url: "/BI/GetAreaInfo",
  type: "GET",
  data: { Id: cityId },
  timeout: 5000,
  async: false,
  dataType: "json",
  success: function (result) {
    $("#Area").empty();
    $("#Area").append("<option value='-1'>请选择区域</option>");
    for (var i = 0; i < result.AreaInfo.length; i++) {
      $("<option value='" + result.AreaInfo[i].ID + "'>" + result.AreaInfo[i].Name + "</option>").appendTo('#Area');
    }
    $("#Area").val(areaId);
  }
});

</script>

那么问题来了,重复的代码量很多了吧,这个时候我们可以用jquery的trigger方法,模拟自动触发,即可达到同样效果。

$(function () {
  $("#City").val("@Model.CityId");
  $("#City").trigger("change", "@Model.CityId");
  $("#Area").val("@Model.AreaId");
  $("#Area").trigger("change", "@Model.AreaId");
});

代码精简不少哈。

使用jquery的trigger方法优化页面代码的更多相关文章

  1. YbSoftwareFactory 代码生成插件【二十五】:Razor视图中以全局方式调用后台方法输出页面代码的三种方法

    上一篇介绍了 MVC中实现动态自定义路由 的实现,本篇将介绍Razor视图中以全局方式调用后台方法输出页面代码的三种方法. 框架最新的升级实现了一个页面部件功能,其实就是通过后台方法查询数据库内容,把 ...

  2. jQuery 事件 - trigger() 方法 和 triggerHandler() 方法

    trigger() 方法触发被选元素的指定事件类型. triggerHandler() 方法触发被选元素的指定事件类型.但不会执行浏览器默认动作,也不会产生事件冒泡. triggerHandler() ...

  3. 使用jQuery中trigger()方法自动触发事件

    一.常用事件 在页面加载完成时  自动触发input的点击事件,在移动端可以实现自动弹出输入法,获得焦点 $("input").trigger("click") ...

  4. jQuery 事件 - trigger() 方法

    <html> <head> <script type="text/javascript" src="/jquery/jquery.js&qu ...

  5. Jquery中Trigger()方法

    1. $(selector).trigger(event,[param1,param2,...]) 方法触发被选元素标签的指定事件类型 为元素边赋值为true,并触发元素标签的change方法 $(' ...

  6. jQuery的css()方法

    jQuery的css()方法下面的代码可以为div一次性设置多个样式属性<!DOCTYPE html><html><head><meta charset=&q ...

  7. 关于jquery的serialize方法转换空格为+号的解决方法

    jquery的 serialize()方法,可以对表单项进行序列化,这本来是很方便的一个功能:但是实际使用中去发现了如下问题:例如:< textarea name="content&q ...

  8. 大型网站性能优化(页面(HTML)优化的方法)

    页面(HTML)优化的方法 除了语言层面上进行优化外,对Web开发,HTML的优化将很大程度上减轻服务器的负载,提高网站的性能 1). 减少HTTP请求数.打开网页,浏览器会发出很多请求,图片,脚本, ...

  9. 使用jquery的load方法设计动态加载,并解决被加载页面JavaScript失效问题

    一.问题分析 对于后台系统,相比大家都有所印象,知道其中的布局结构,如图: 在这种布局中我们需要将header,sidebar,footer分开,而且对于中间部分的content内容需要动态变化,即根 ...

随机推荐

  1. Spring Boot 性能优化

    spring 框架给企业软件开发者提供了常见问题的通用解决方案,包括那些在未来开发中没有意识到的问题.但是,它构建的 J2EE 项目变得越来越臃肿,逐渐被 Spring Boot 所替代.Spring ...

  2. jquery是如何架构的.

    心里一直有个疑问. jquery是如何做到一个jQuery即可以当方法用比如$();又可以当对象用$.extend(); 现在总结一下吧 function method(){} var m=new m ...

  3. Codeforces Round #229 (Div. 2) C

    C. Inna and Candy Boxes time limit per test 1 second memory limit per test 256 megabytes input stand ...

  4. FW: Chef集中管理工具实践之 (1) 环境部署

    本文转载:http://heylinux.com/archives/2208.html Chef集中管理工具实践之 (1) 环境部署 目录结构Chef集中管理工具实践之 (0) 什么是ChefChef ...

  5. 前端项目构建error

    Refusing to install webpack as a dependency of itself 原因:package.json中,"name": "webpa ...

  6. nodejs & nodemailer

    nodejs & nodemailer https://www.npmjs.com/package/nodemailer 上面的連接裏面 有有一個例子: 可以直接拿來用: 安裝依賴,在pack ...

  7. 关于Eclipse项目中加入jquery.js文件报错(missing semicolon)问题

    在使用Eclipse3.7及以后的版本的时候,加入jQuery文件会报错(missing semicolon),文件中会显示红色小X,虽然这个错误并不会影响项目的运行,但是这个却会大大的影响到开发人员 ...

  8. AngularJS 中设置 AJAX get 请求不缓存的方法

    var app = angular.module('manager', ['ngRoute']); app.config(['$routeProvider', function($routeProvi ...

  9. 【软件工程】用map 实现把英语文本文件词和个数打印出来

    #include <iostream> #include <fstream> #include <string> #include <map> usin ...

  10. css 中 list-style-image:

    用于设置<a>标签的默认格式的背景图片