使用jquery的trigger方法优化页面代码
我们做页面级联的时候经常会用到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方法优化页面代码的更多相关文章
- YbSoftwareFactory 代码生成插件【二十五】:Razor视图中以全局方式调用后台方法输出页面代码的三种方法
上一篇介绍了 MVC中实现动态自定义路由 的实现,本篇将介绍Razor视图中以全局方式调用后台方法输出页面代码的三种方法. 框架最新的升级实现了一个页面部件功能,其实就是通过后台方法查询数据库内容,把 ...
- jQuery 事件 - trigger() 方法 和 triggerHandler() 方法
trigger() 方法触发被选元素的指定事件类型. triggerHandler() 方法触发被选元素的指定事件类型.但不会执行浏览器默认动作,也不会产生事件冒泡. triggerHandler() ...
- 使用jQuery中trigger()方法自动触发事件
一.常用事件 在页面加载完成时 自动触发input的点击事件,在移动端可以实现自动弹出输入法,获得焦点 $("input").trigger("click") ...
- jQuery 事件 - trigger() 方法
<html> <head> <script type="text/javascript" src="/jquery/jquery.js&qu ...
- Jquery中Trigger()方法
1. $(selector).trigger(event,[param1,param2,...]) 方法触发被选元素标签的指定事件类型 为元素边赋值为true,并触发元素标签的change方法 $(' ...
- jQuery的css()方法
jQuery的css()方法下面的代码可以为div一次性设置多个样式属性<!DOCTYPE html><html><head><meta charset=&q ...
- 关于jquery的serialize方法转换空格为+号的解决方法
jquery的 serialize()方法,可以对表单项进行序列化,这本来是很方便的一个功能:但是实际使用中去发现了如下问题:例如:< textarea name="content&q ...
- 大型网站性能优化(页面(HTML)优化的方法)
页面(HTML)优化的方法 除了语言层面上进行优化外,对Web开发,HTML的优化将很大程度上减轻服务器的负载,提高网站的性能 1). 减少HTTP请求数.打开网页,浏览器会发出很多请求,图片,脚本, ...
- 使用jquery的load方法设计动态加载,并解决被加载页面JavaScript失效问题
一.问题分析 对于后台系统,相比大家都有所印象,知道其中的布局结构,如图: 在这种布局中我们需要将header,sidebar,footer分开,而且对于中间部分的content内容需要动态变化,即根 ...
随机推荐
- Spring Boot 性能优化
spring 框架给企业软件开发者提供了常见问题的通用解决方案,包括那些在未来开发中没有意识到的问题.但是,它构建的 J2EE 项目变得越来越臃肿,逐渐被 Spring Boot 所替代.Spring ...
- jquery是如何架构的.
心里一直有个疑问. jquery是如何做到一个jQuery即可以当方法用比如$();又可以当对象用$.extend(); 现在总结一下吧 function method(){} var m=new m ...
- 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 ...
- FW: Chef集中管理工具实践之 (1) 环境部署
本文转载:http://heylinux.com/archives/2208.html Chef集中管理工具实践之 (1) 环境部署 目录结构Chef集中管理工具实践之 (0) 什么是ChefChef ...
- 前端项目构建error
Refusing to install webpack as a dependency of itself 原因:package.json中,"name": "webpa ...
- nodejs & nodemailer
nodejs & nodemailer https://www.npmjs.com/package/nodemailer 上面的連接裏面 有有一個例子: 可以直接拿來用: 安裝依賴,在pack ...
- 关于Eclipse项目中加入jquery.js文件报错(missing semicolon)问题
在使用Eclipse3.7及以后的版本的时候,加入jQuery文件会报错(missing semicolon),文件中会显示红色小X,虽然这个错误并不会影响项目的运行,但是这个却会大大的影响到开发人员 ...
- AngularJS 中设置 AJAX get 请求不缓存的方法
var app = angular.module('manager', ['ngRoute']); app.config(['$routeProvider', function($routeProvi ...
- 【软件工程】用map 实现把英语文本文件词和个数打印出来
#include <iostream> #include <fstream> #include <string> #include <map> usin ...
- css 中 list-style-image:
用于设置<a>标签的默认格式的背景图片