我对javascript和jquery很新,所以这可能是一个非常简单的问题。请不要介意。
我通过
在id =“whatever”的分区中追加新的链接(a)元素$("#whatever").append(jQuery('<a>').attr('href', 'url').text('blah'));
调用函数
$(function () {
$('#whatever a').tagcloud();
});
在特定div内的每个链接元素上。 但是这个函数只在旧元素上调用,而不是在我刚刚动态添加的元素上调用。 我试过这样做:
$(document).on("change", '#whatever', function () {
$("whatever a").tagcloud();
});
但它还没有奏效。
答案 0 :(得分:1)
var $link = $('<a>').attr('href', 'url').text('blah');
$("#whatever").append($link);
$link.tagcloud();
$(document).on("change"
永远不会开枪。
答案 1 :(得分:0)
首先在您的示例中$("whatever a")
应该是$("#whatever a")
,但是当我遇到这种情况时,我会委托与附加内容相同的操作
$("#whatever").append(jQuery('<a>').attr('href', 'url').text('blah'));
$('#whatever a').off();
$('#whatever a').tagcloud();
答案 2 :(得分:0)
试试这个:
$("body").on("tagcloud", "#whatever", function(){
$("#whatever").append(jQuery('<a>').attr('href', 'url').text('blah'));
});
请查看此类似问题以获取更多信息:
Event binding on dynamically created elements?
此外,jQuery还有一些信息:
我想留下这个评论,但不能。希望它有所帮助。
答案 3 :(得分:0)
对您的修改的回复,请尝试以下操作:
$(document).on("change", '#whatever', function () {
$("#whatever a").tagcloud();
});
我想您可能已经忘记了选择器中的#。
答案 4 :(得分:0)
似乎它没有按预期工作,因为您缺少将rel
属性添加到要追加的元素中。
// ...
// The plugin reads the rel attributes
var tagWeights = this.map(function(){
return $(this).attr("rel");
});
试试这个:
$('<a>').attr({'href': 'url', 'rel': 'value'})
.text('blah')
.tagcloud()
.appendTo('#someWhere');
答案 5 :(得分:-1)
试试这个:
$('#whatever').on('change', 'a', function() {
$(this).tagcloud();
});