说我有两个按钮“添加链接”和“添加文本”。 “添加链接”按钮会自动将以下内容附加到现有页面:
<a href="text.html"></a>
当我点击“添加文字”按钮时,创建的所有动态链接的文本应包含文本“文本”。
我最初使用“$(”a“)。text(”Text“)”作为“添加文本”按钮的功能,但它不起作用,因为链接是在用户单击“添加”时动态创建的链接“按钮。
如何制作它以便我可以将“文本”放入所有动态创建的链接中?
注意:像这样的东西
$('buttonforaddtext').live('click', function() {
$("a").text("Text");
});
对我来说不起作用,因为按钮一直存在,它是通过点击“添加链接”按钮动态创建的“a”。
答案 0 :(得分:1)
$('button').on('click', function() {
/* your code */
});
如果你有动态对象,你需要使用.on()
让它工作......
答案 1 :(得分:1)
按照我在评论中提到的方式尝试以下内容
$('#addLink').on('click', function () {
$(body).append('<a href="' + someURL + '" class="newLink"></a>');
});
$('#addText').on('click', function () {
$('a.newLink').text('New Link');
});
答案 2 :(得分:0)
var yourLink = $("<a href="+someURL+">"+yourText+"</a>");
或
var yourLink = $("<a href="+someURL+"/>");
yourLink.html("Text");
然后
yourLink.appendTo($('body'));
如果您希望同时创建@
答案 3 :(得分:0)
你描述对我来说听起来不错。也许你应该发布你正在使用的代码。以下应该有效:
$('#addLink').click(function(){
$('body').append('<a href="text.html"></a>');
});
$('#addText').click(function(){
$('a').text('Text');
});
只要在点击事件发生后创建了jQuery对象($('a')),一切都应该按照你的描述工作。
答案 4 :(得分:0)
您需要使用'.live'方法,正如我们的同事之前所说的那样。碰巧的是,在您尝试绑定事件的那一刻,元素并不存在,并且它不起作用。
使用.live,窗口将继续监听您选择的元素。
如果您正在使用jQuery 1.7。+,我建议您使用.on()方法绑定事件,并使用.off()解除绑定,不再需要它...
PS:顺便问一下,你想要选择什么?
$('buttonforaddtext')
答案 5 :(得分:0)
您的问题可能是实时超出了已弃用状态,或者您没有自己认为的HTML。由于您在回调中重新查询文本插入的A标记,而按钮是静态HTML,因此您不需要“实时”或“委托”或“打开”。只需做一个简单的.click