更改 Chrome 扩展程序中未触发的事件复选框
Change event not firing for checkbox in Chrome extension
我正在创建一个Chrome扩展程序,我正在动态创建复选框。现在在文档准备就绪中,我已经放置了代码来处理复选框的"选中"更改事件,但代码无法按预期工作,因为单击它时没有收到任何警报。
创建动态复选框:
function createExtensionUI(extensionListArray){
var bkg = chrome.extension.getBackgroundPage();
var extensionLength = extensionListArray.length;
for(var i=0; i<extensionLength; i++){
var extensionObject = extensionListArray[i];
if(extensionObject.type == "extension"){
var checkbox = '<label><input type="checkbox" class= "extensionbox" id= ' + extensionObject.id + '/>'+extensionObject.shortName+'</label>';
$('#extensionList').append(checkbox);
bkg.console.log(checkbox);
}
}
}
动态复选框 HTML 代码示例:
<label><input type="checkbox" class= "extensionbox" id= "llegcghmokaemodgdddnchiijfdbfnlg"/>Coremetrics Bar for Chrome</label>
变更事件代码:
$(document).ready(function(){
chrome.management.getAll(getExtensionList);
$("input[type=checkbox]").change(function() {
alert('hello');
});
});
我没有收到任何"你好"警报。我的扩展 UI 正常。
我尝试了以下方法,但它们也没有奏效:
$("input[type=checkbox]").change
$(".extensionbox").change
我正在使用jquery版本1.11.1
我认为
问题出在异步执行上。不过,如果没有您的getExtensionList
代码,很难确定。
你显然是从getExtensionList
创建你的元素,它在$(document).ready
的其余部分之后执行,所以你的听众不会附加,因为DOM元素还不存在。
要修复,请将附加侦听器的代码移动到createExtensionUI
末尾,无论如何它在逻辑上属于那里。
相关文章:
- 如果选中了多个复选框,如何添加事件
- 复选框,然后单击事件处理
- Firefox:点击并更改未附加到文档树中的复选框元素上的事件
- 选中javascript中的属性集时,复选框更改事件未触发
- jQuery复选框(在ul>li下)检查事件
- 如何禁用自定义复选框的单击事件
- 将函数事件绑定到更改函数的复选框/标签
- 当通过选择页面上所有复选框的 jQuery 脚本选中复选框时,如何触发自定义 javascript 事件
- 选中/取消选中某些事件的复选框
- Javascript,表单中任何复选框的事件处理程序
- Jquery复选框更改事件未激发
- jQuery复选框和span共享一个单击事件
- 带有复选框的jQuery更改事件处理程序
- 复选框上的点击捕捉事件
- 使用 JavaScript 更改复选框 OnClick 事件的值
- 空格键触发单击事件复选框
- 更改 Chrome 扩展程序中未触发的事件复选框
- 在AJAX插入的动态创建元素上绑定事件(复选框)
- 单击“事件”复选框将不会触发
- 动态添加点击事件复选框,只适用于第一个复选框JQUERY