.append 到一个非 DOM 元素 jQuery
Posted
技术标签:
【中文标题】.append 到一个非 DOM 元素 jQuery【英文标题】:.append to a non DOM element jQuery 【发布时间】:2013-12-16 03:39:30 【问题描述】:我正在尝试附加到非 DOM 元素(为幻灯片添加了 Pagiantion)。
我的代码是:
$("#slides2 .slidesjs-pagination-item a").on("click", function (event)
alert('append');
);
这不会给我警报。由于on
正在替换live
,我想知道为什么这不起作用?
更新adeno 的评论有帮助,我的代码现在是:
$(document).on("ready", "#slides2 .slidesjs-pagination-item a", function (event)
$("#slides2 .slidesjs-pagination-item a").prepend("Image");
$("#slides2 .slidesjs-pagination-item a").append(" of 30");
);
这不起作用,我如何附加一个在元素加载时进行计算的事件?
【问题讨论】:
$(document).on("click", "#slides2 .slidesjs-pagination-item a", function(event)...
Event binding on dynamically created elements?的可能重复
我不明白你的问题与追加有什么关系,也不明白你为什么称它为“非 DOM 元素”。
我只是使用点击功能和警报来测试.on,通过非 DOM 元素我的意思是在文档准备好之前它不存在
$(document).on("click", "#slides2 .slidesjs-pagination-item a"
, function(event) 工作了谢谢,所以现在我的代码是$(document).on("ready", "#slides2 .slidesjs-pagination-item a", function(event) $("#slides2 .slidesjs-pagination-item a").prepend("Image "); $("#slides2 .slidesjs-pagination-item a").append(" of 30"); );
哪个不起作用,我如何附加一个在加载元素时recgonises的事件?
【参考方案1】:
您必须将事件绑定到父元素,然后使用selector
参数选择目标元素。你可以找到更多关于.on()
here的信息。
$('#slides2').on('click', '.slidesjs-pagination-item a', function(e)
alert('append');
);
【讨论】:
【参考方案2】:试试:
$("#slides2").on("click", ".slidesjs-pagination-item a", function(event)
alert('append');
);
虽然没有看到任何 html 就很难判断...
【讨论】:
【参考方案3】:两个潜在的指针:
下面的行是否返回一个 > 0 的数字?如果不是,您的选择器是错误的。
alert($("#slides2 .slidesjs-pagination-item a").length)
您提到您尝试附加到非 DOM 元素。您选择的元素是否完全附加到 DOM?如果不是:您不能单击非 DOM 节点。
【讨论】:
.slidesjs-pagination-item 不是 DOM 元素,它是由 js 文件添加的【参考方案4】: 如果元素不在 DOM 中,$("#blah") 将不起作用。 我猜你的模板在参数中,所以这样做:
$("#blah", myTemplate).click(...
【讨论】:
以上是关于.append 到一个非 DOM 元素 jQuery的主要内容,如果未能解决你的问题,请参考以下文章