如何使更改事件适用于使用 replaceWith 添加的 html 的单选按钮
How to make change event work for radiobutton for html added with replaceWith
我设法触发了单选按钮的更改事件。但是,我现在需要它适用于 html,其中单选按钮使用 replaceWith 添加到标记中。
因此,它被添加到我的标记中:
$(this).replaceWith('<input type="radio" name="variety" value="null" id="myradio" />');
因此,我用于捕获更改事件的代码是:
$('#myradio').change(function () {
alert("Hello");
});
那么有谁知道我将如何完成这项工作,因为单选按钮现在在初始页面加载后添加到页面中?
您可以使用
.on()
(jQuery 1.7+)或.delegate()
(jQuery 1.4.3+)来订阅更改事件,以便考虑动态添加的元素。
例如:
$('#myradio').live('change', handler); // jQuery 1.3+
$(document).delegate('#myradio', 'change', handler); // jQuery 1.4.3+
$(document).on('change', '#myradio', handler); // jQuery 1.7+
同样重要的是要指出,没有必要将此订阅放在document.ready
回调中。
您可以使用以下内容:
$('body').on('change', '#myradio', function () { 警报("你好");});
如果您事先知道要在其中放置单选按钮的元素,则应更改"body"选择器以匹配该元素的性能。
:
-
使用 jQuery
on
到父级<div id="container"> <!--replaceable elements--> </div> //this will take effect on current and future children $('#container').on('change','targetSelector',function(){ alert("Hello"); });
-
或直接绑定到新元素
function func(){ alert("Hello"); } var newEl = $('<input type="radio" name="variety" value="null" id="myradiobutton" />'); newEl.change(func); $(this).replaceWith(newEl);
不过,我更喜欢第一个,用于性能和干净的代码。
您可以创建单选按钮,添加更改事件,然后将this
替换为单选按钮。
var $radio = $('<input type="radio" name="variety" value="null" id="myradio" />');
$radio.change(function () {
alert("Hello");
});
$(this).replaceWith($radio);
相关文章:
- 正在添加'X'按钮,在文本字段旁边使用javascript
- 如何在映射数组中添加换行符
- 正在将数据主题添加到所有项目
- ZeroClipboard-在复制之前添加到值
- 我可以在json对象中添加一个函数吗
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 正在SharePoint 2013母版页中添加JQuery移动文件
- 如何添加浮动和非浮动,其他
- 添加文字和评论功能更新Div
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- 在函数中添加数组元素的数值
- 如何将歌曲添加到jPlayer
- 在html Select中添加搜索
- Java脚本时间添加
- FabricJs-限制主对象内添加对象的移动区域
- JQuery添加元素需要在我的js之前再次添加JQuery脚本
- 如何在Google柱状图中动态添加行/列
- 如何使更改事件适用于使用 replaceWith 添加的 html 的单选按钮
- 如何在replaceWith()之后添加事件