点击事件似乎没有触发此内存html块中的复选框。它会触发按钮而不是复选框。
这是小提琴:http://jsfiddle.net/X2en3/18/
代码:
与.trigger()一起解雇: 被.click():
解雇var working = $('<div><input type="checkbox" id="myBox"/><button id="myButton"/><div>'),
checkbox = working.find('#myBox'),
button = working.find('#myButton'),
stage;
function boxclicked() {$('#' + stage).append('--checkbox');}
function buttonclicked() {$('#' + stage).append('--button');}
working.delegate('#myBox', {click: boxclicked});
working.delegate('#myButton', {click: buttonclicked});
stage = 'trigger';
checkbox.trigger('click');
button.trigger('click');
stage = 'click';
checkbox.click();
button.click();
这只适用于Chrome和JQuery 1.9.1。 Firefox / IE 9和以前版本的JQuery都运行良好。
感谢任何帮助。
答案 0 :(得分:0)
来自jquery.com
http://api.jquery.com/delegate/
从jQuery 1.7开始,.delegate()已被.on()方法取代。 然而,对于早期版本,它仍然是最有效的手段 使用事件委托。有关事件绑定和委派的更多信息 在.on()方法中。通常,这些是等效的模板 对于这两种方法:
尝试使用on
方法
var $checkbox = $("<input>", { type: "checkbox", id: "myBox" });
var $button = $("<button>", { type: "checkbox", id: "myButton" });
var $container = $("<div>");
$container.append($checkbox);
$container.append($button);
$("body").append($container);
$container.on("click", "#myBox", getCheckboxStatus);
$container.on("click", "#myButton", getButtonStatus);
function getCheckboxStatus() {
$('#chckBoxVerify').append('Yes');
}
function getButtonStatus() {
$('#buttonVerify').append('Yes');
}
$checkbox.click();
$button.click();