今天搞一个连环套的动态选项展示,需要给下拉框动态绑定事件,谁知绑定中出现问题,总是执行第一次绑定的时间而后续绑定的事件没有被触发。

 //重写增加行方法
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>&nbsp;删除</a>&nbsp;&nbsp;';
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动态事件绑定问题的更多相关文章

  1. jQuery插件 -- 动态事件绑定插件jquery.livequery.js

    http://blog.csdn.net/zzq58157383/article/details/7721974 动态事件绑定插件livequery, 可以利用它给相应的DOM元素注册事件或者触发回调 ...

  2. [HTML5]原生事件绑定和jquery动态事件绑定的区别

    原生事件绑定: <!-- 标签上绑定的事件是由window对象帮助调用,因此方法内的this其实是window对象 --> <label><input type=&quo ...

  3. jquery 动态事件绑定(0512)

    jquery动态事件绑定,父元素需为静态元素,(不能是动态生成): $("#parent").on("click","#child",fun ...

  4. JS基础——事件绑定

    上一篇博客JS事件对象中,老师问JS事件处理和VB中的事件处理有什么联系?先来解决一下这个问题.举个VB.net中事件处理的样例(JS敲久了,VB习惯的都不熟悉了,看来得常常回想了): 1.事件处理V ...

  5. JS中事件绑定的三种方式

    以下是搜集的在JS中事件绑定的三种方式.   1. HTML onclick attribute     <button type="button" id="upl ...

  6. js中事件绑定要注意的事项之如何在方法中自己打印自己的值

    下面是错误的js方法绑定,这样写会造成在方法中不能用 调用方法的dom本身的一些 东西,如各种属性或者jq对象等. <!DOCTYPE html> <html> <hea ...

  7. JS的事件绑定、事件流模型

    .t1 { background-color: #ff8080; width: 1100px; height: 40px } 一.JS事件 (一)JS事件分类 1.鼠标事件:click/dbclick ...

  8. JS中事件绑定函数,事件捕获,事件冒泡

    1 事件绑定:事件与函数绑定以及怎么取消绑定 1.1 元素.onclick这种形式,如下: <div id="div1">aaa</div> <scr ...

  9. dom元素操作(动态事件绑定)

    遇到的问题:动态生成的内容,事件绑定会出错. 例子:http://snowinmay.net/jqm/dom-learn2.html 1.绑定事件对动态生成的新元素无效. 问题描述:bind事件绑定后 ...

随机推荐

  1. Objective-C实用类和协议

    Objective-C实用类和协议 目录 概述 NSObject 概述 NSObject 协议<NSObject> 类NSObject 详细方法参考文档 实用操作 是否为某个类或其子类 是 ...

  2. 打包签名时出现Conversion to Dalvik format failed with error 1

    今天在导出签名APK时,居然出现了“Conversion to Dalvik format failed with error 1” 于是,我习惯性地“Project”->“Clean”,把工程 ...

  3. python3个人习惯的gitignore

    简介 就是普通的.gitignore # Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] *$py.class # C ext ...

  4. Freebsd下用pureftpd配置FTP服务器

    pureftpd安装配置简明说明 1.下载  http://sourceforge.net/projects/pureftpd/ 最新版本是pure-ftpd-1.0.16a.tar.bz2 BSD自 ...

  5. SecureCRT图形界面

    一般的咱们用这个工具连接服务器啥的都是命令行模式的,其实他也可以连接图形界面 一.Xmanager SecureCRT连接图形界面的话必须要有 Xmanager 工具的配合才行,SecureCRT显示 ...

  6. LINUX内核分析20133201

    实验:通过汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的 学号:20133201 姓名:李冬辉 注: 原创作品转载请注明出处 +<Linux内核分析>MOOC课程http://m ...

  7. Python 开发中高级技巧

    列表推导式 >>> chars = [ c for c in 'python' ] >>> chars ['p', 'y', 't', 'h', 'o', 'n'] ...

  8. Celery(一个懂得 异步任务、定时任务、周期任务 的"芹菜")

    一.什么是Celery? Celery 是基于Python实现的模块,用于执行异步.定时.周期任务的,其结构的组成是: - 用户任务 app - 管道 broker 用于存储任务(官方推荐 redis ...

  9. spring 自定义事物同步器(一): TransactionSynchronizationManager 解析

    一..JPA 获取 Hibernate的session try { session = entityManager.unwrap(Session.class); } catch (Exception ...

  10. shell_01

    定义变量: name='qwer' 不解析任何字符 name="qwer" 会解析$和\特殊字符 name1=123;name2=456 定义多个变量 now_date=`date ...