[英]Events are not firing (in non-IE browsers) when adding html elements dynamically via jQuery
我正在通过jQuery创建具有焦点和模糊事件的输入元素。 由于某些原因,即使显示了输入元素,事件也不会触发。 这是一个示例http://jsfiddle.net/9JtLq/8/
这适用于IE7和IE8。 它不适用于Firefox,Safari或Chrome。 为什么?
html
<div>
Try to focus from one input to another.
</div>
<div class="placeholder"/>
<div class="placeholder"/>
<div id="output" />
javascript:
var input_box = $("<input type=\"text\" />")
.focus(function()
{
$("#output").html($("#output").text() + "focus - ");
})
.blur(function()
{
$("#output").html($("#output").text() + "blur - ");
});
$(".placeholder").append(input_box);
您应该在附加后绑定事件
$(".placeholder").append("<input type=\"text\" />");
$(".placeholder input:text").focus(function() {
$("#output").html($("#output").text() + "focus - ");
}).blur(function() {
$("#output").html($("#output").text() + "blur - ");
});
如果您使用的是jQuery 1.4.1+,则可以实时绑定模糊和焦点,这意味着所有匹配的当前和将来元素都将绑定到事件
$(".placeholder input:text").live("focus", function() {
$("#output").html($("#output").text() + "focus - ");
}).live("blur", function() {
$("#output").html($("#output").text() + "blur - ");
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.