检测用户对select>.html()"
Detect a user change of a <select> list created with Jquery ".html()"
是否有一种方法来检测当一个选择列表的值被改变,当这个选择列表已经添加了.html(htmlString)
或.append(content[,content])
的jQuery函数?
<ul class="htmlClass">
<!-- Populated via JS -->
</ul>
JAVASCRIPT代码:
var MyDropDownMenu= "";
MyDropDownMenu += '<select class="field">';
MyDropDownMenu += '<option value="1">Option 1</option>';
MyDropDownMenu += '<option value="2">Option 2</option>';
MyDropDownMenu += '</select>';
$('ul.htmlClass').html(MyDropDownMenu);
$(".field").change( function() { //Doesn't work!!!
alert("test1");
});
$(".htmlClass").change( function() { //work
alert("test2");
});
您需要使用事件委托
$('ul.htmlClass').on('change',".field", function() {
alert("test1");
});
- http://learn.jquery.com/events/event-delegation/
使用委托事件处理程序
$('ul.htmlClass').on('change','.field', function() {
alert("test1");
});
参见直接事件和委托事件了解更多信息。
代码中的另一个问题是您将select
直接添加到ul
元素。这是不对的。
我看到两个选项
1)用li
标签包裹select
var MyDropDownMenu= "<li>";
myDropDownMenu += '<select class="field">';
MyDropDownMenu += '<option value="1">Option 1</option>';
MyDropDownMenu += '<option value="2">Option 2</option>';
MyDropDownMenu += '</select>';
MyDropDownMenu += '</li>';
2)转换你的ul
到div
,如果你不需要一个列表
相关文章:
- 防止“;jQuery(html)"防止触发浏览器请求图像和其他参考内容
- html,js-如何限制元素"范围“-命名空间
- "未捕获类型错误/丢弃意外“;因为一句台词而出现?(HTML w/<脚本>)
- 显示“<script src='some.js'></脚本>"在Html文档中
- "未捕获的SyntaxError:意外的令牌ILLEGAL“;当我通过AJAX发送html时
- Django,HTML,JS:<img src=“#">可以在HTML中工作,但不能在JS文件中工作
- 我怎么能"合并”;两个HTML标签
- "捆绑;仅适用于HTML/JS的解决方案
- 如何在HTML、JS中重定向,如果用户关闭“;window.open()"-对话
- 我怎么能"DRY”;调出我的html和javascript代码
- "r 〃;在jquery-ajax-html的警报中
- 是否“;onload()"HTML的延迟与加载javascript的延迟冲突
- 在html文本框中,如何显示本身包含“”的值"象征
- 参考“;href"而不是html中锚点标签中的url
- HTML/JavaScript”;if!="不起作用
- "“聪明”;HTML中的溢出:有什么方法可以放省略号“"结尾有一个链接,可以查看整个内容
- JavaScript:为什么我最终会使用“;引号"在我的HTML中
- 带有换行符的JSP+HTML-将其作为字符串获取,并删除"新线”;
- html(").append()的更好方法
- Javascript-JQuery:找不到id和.html(")或getElementById并设置inner