动态添加元素的调用函数
我对javascript和jquery很新,所以这可能是一个非常简单的问题。 请不要介意。
我在分区中追加新的链接(a)元素,id =“whatever”by
$("#whatever").append(jQuery('').attr('href', 'url').text('blah'));
并调用一个函数
$(function () { $('#whatever a').tagcloud(); });
在特定div内的每个链接元素上。 但是这个函数只在旧元素上调用,而不是在我刚刚动态添加的元素上调用。 我试过这样做:
$(document).on("change", '#whatever', function () { $("whatever a").tagcloud(); });
但它仍然无法正常工作。
它似乎无法按预期工作,因为您缺少将rel
属性添加到要追加的元素。
// ... // The plugin reads the rel attributes var tagWeights = this.map(function(){ return $(this).attr("rel"); });
试试这个:
$('').attr({'href': 'url', 'rel': 'value'}) .text('blah') .tagcloud() .appendTo('#someWhere');
var $link = $('').attr('href', 'url').text('blah'); $("#whatever").append($link); $link.tagcloud();
$(document).on("change"
永远不会开火。
首先在你的例子中$("whatever a")
应该是$("#whatever a")
但是当我遇到这种情况时,我委托与追加相同的动作
$("#whatever").append(jQuery('').attr('href', 'url').text('blah')); $('#whatever a').off(); $('#whatever a').tagcloud();
试试这个:
$("body").on("tagcloud", "#whatever", function(){ $("#whatever").append(jQuery('').attr('href', 'url').text('blah')); });
有关详细信息,请查看此类似问题:
动态创建元素的事件绑定?
此外,jQuery有一些信息:
我想留下这个评论,但不能。 希望能帮助到你。
对您的编辑的回复,请尝试以下操作:
$(document).on("change", '#whatever', function () { $("#whatever a").tagcloud(); });
我想你可能已经忘记了选择器中的#。
试试这个:
$('#whatever').on('change', 'a', function() { $(this).tagcloud(); });