JS动态事件绑定问题
今天搞一个连环套的动态选项展示,需要给下拉框动态绑定事件,谁知绑定中出现问题,总是执行第一次绑定的时间而后续绑定的事件没有被触发。
//重写增加行方法
function initMainItem(gridId){
jqgrid = $('#' + gridId);
var colModel = jqgrid.jqGrid().getGridParam("colModel");
var rowid ="rowid" + new Date().getTime();
jqgrid.jqGrid("addRowData", rowid, JSON.stringify(colModel), "last");
jqgrid.editRow(rowid, true);
var optTd = $("#" + rowid + " td[aria-describedby='basMgmtGridIdGrid_opt']");
var buttonStr= '<a href="#" class="btn btn-xs btn-danger" onclick="delRowData(\'' +
rowid+'\')"><i class="fa fa-trash"></i> 删除</a> ';
optTd.html(buttonStr);
jqgrid.jqGrid('setSelection',rowid);
var option = "";
for(var key in itemData) {
option += "<option role='option' value='" + key + "'>" + mainItemDict[key] + "</option>";
}
var mainItem = $("#" + rowid + " select[name=mainItem]");
mainItem.html(option);
mainItem.change(function () {initSubItem(mainItem);});
initSubItem(mainItem);
} function initSubItem(mainItem) {
var mainItemKey = mainItem.val();
var priceItems = itemData[mainItemKey];
var option = "";
for(var key in priceItems) {
option += "<option role='option' value='" + key + "'>" + key + "</option>";
}
var subItem = mainItem.parent("td").next("td").children();
subItem.html(option);
subItem.change(function () {initItem(subItem, priceItems);});
initItem(subItem, priceItems);
} function initItem(subItem, priceItems) {
var subItemKey = subItem.val();
var priceItem = priceItems[subItemKey];
var unitItem = subItem.parent("td").next("td");
unitItem.html("<span class='form-control' style='background-color:transparent;border-color:transparent'>" + unitDict[priceItem.unit] + "<span>");
}
注意两个动态绑定,其实很简答的知识,绑定新事件前要清除旧事件,因为js默认不覆盖,这些都是学过的,就是不出错get不到啊。
改为:
subItem.unbind("change").change(function () {initItem(subItem, priceItems);});
JS动态事件绑定问题的更多相关文章
- jQuery插件 -- 动态事件绑定插件jquery.livequery.js
http://blog.csdn.net/zzq58157383/article/details/7721974 动态事件绑定插件livequery, 可以利用它给相应的DOM元素注册事件或者触发回调 ...
- [HTML5]原生事件绑定和jquery动态事件绑定的区别
原生事件绑定: <!-- 标签上绑定的事件是由window对象帮助调用,因此方法内的this其实是window对象 --> <label><input type=&quo ...
- jquery 动态事件绑定(0512)
jquery动态事件绑定,父元素需为静态元素,(不能是动态生成): $("#parent").on("click","#child",fun ...
- JS基础——事件绑定
上一篇博客JS事件对象中,老师问JS事件处理和VB中的事件处理有什么联系?先来解决一下这个问题.举个VB.net中事件处理的样例(JS敲久了,VB习惯的都不熟悉了,看来得常常回想了): 1.事件处理V ...
- JS中事件绑定的三种方式
以下是搜集的在JS中事件绑定的三种方式. 1. HTML onclick attribute <button type="button" id="upl ...
- js中事件绑定要注意的事项之如何在方法中自己打印自己的值
下面是错误的js方法绑定,这样写会造成在方法中不能用 调用方法的dom本身的一些 东西,如各种属性或者jq对象等. <!DOCTYPE html> <html> <hea ...
- JS的事件绑定、事件流模型
.t1 { background-color: #ff8080; width: 1100px; height: 40px } 一.JS事件 (一)JS事件分类 1.鼠标事件:click/dbclick ...
- JS中事件绑定函数,事件捕获,事件冒泡
1 事件绑定:事件与函数绑定以及怎么取消绑定 1.1 元素.onclick这种形式,如下: <div id="div1">aaa</div> <scr ...
- dom元素操作(动态事件绑定)
遇到的问题:动态生成的内容,事件绑定会出错. 例子:http://snowinmay.net/jqm/dom-learn2.html 1.绑定事件对动态生成的新元素无效. 问题描述:bind事件绑定后 ...
随机推荐
- Android屏幕和尺寸
DisplayMetrics dm=new DisplayMetrics(); //获取的像素高度不包含虚拟键所占空间 ((WindowManager)context.getSystemService ...
- iOS UITextField更改placeholder颜色
[_textField setValue:COLOR_PLACEHOLDER forKeyPath:@"_placeholderLabel.textColor"];
- HighCharts使用心得(转载)
转载自:http://www.cnblogs.com/Olive116/p/3777021.html 1. 准备工作------下载HighCharts插件 跟ECharts一样,HighChart ...
- Django -- some config
1.主项目下的url配置:urls.py文件 from django.contrib import adminfrom django.urls import path, includefrom dja ...
- Python全栈day21(作业针对一个文件进行查询修改删除的操作练习)
需求,有一个配置文件test.conf内容如下 backend www1 server 1 server 2 backend www2 server 3 server 4 add [{'backend ...
- Python全栈day14(集合)
一,集合 1,集合由不同元素组成 2,无序 3,集合中元素必须是不可变类型 二,定义集合 1,s = {1,2,3,4,5} 2,s = set(hello)以迭代的方式生成集合 s = set(&q ...
- Code Forces 644A Parliament of Berland
A. Parliament of Berland time limit per test1 second memory limit per test256 megabytes inputstandar ...
- FZU 2144 Shooting Game (贪心区域划分)
Problem 2144 Shooting Game Accept: 370 Submit: 1902 Time Limit: 1000 mSec Memory Limit : 32768 KB Pr ...
- jango模板语言初识
一.Django框架简介 1.MVC框架 MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控 ...
- (3.15)常用知识-sql server分页
推荐使用row_number over()方法,或2012以上使用offset PageSize = PageNumber = 方法一:(最常用的分页代码, top / not in) UserId ...