jQuery生成:无法点击<a> tag</a>

时间:2012-06-06 06:11:00

标签: jquery html hyperlink click bookmarklet

这是我的jQuery代码(这是一个bookmarklet,所以这一切都是通过使用我的jQuery脚本来生成的):

$("#audience").prepend("<div id=\"plugbot-gui\"></div>");
$("#plugbot-gui").css("width", "348px").css("height", "48px").css("background-color", "#0A0A0A").css("opacity", "0.9100000262260437");

$("#plugbot-gui").prepend("<br /><a href=\"#\" id=\"autowoot-btn\">AUTOWOOT</a>");
$("#plugbot-gui").append("<a href=\"#\" id=\"automeh-btn\">AUTOMEH</a>");
$("#plugbot-gui").append("<a href=\"#\" id=\"autoqueue-btn\">AUTOQUEUE</a>");

$("#plugbot-gui a").css("font", "bold 12px arial").css("color", "#fff").css("text-align", "center").css("margin-left", "32px");
$("#plugbot-gui a:first-child").css("margin-left", "0px !important");

一切都出现了(文本),并且正好在我想要的地方......但是当我尝试使用其中一个ID在jQuery中使用click()处理程序时,例如autowoot-btn,它不会捡起来。值得注意的是,即使它们是链接标记,光标在悬停在其上时也不会改变。

谢谢!

1 个答案:

答案 0 :(得分:3)

$('#plugbot-gui').on('click', '#autowoot-btn', function() {

});

当您的#autowoot-btn在页面加载后附加到DOM,因此您需要委托事件处理程序(也就是实时)。

您需要对页面加载后进入DOM的所有元素应用此过程。

还有另一个名为.delegate()

的流程

看起来像:

$('#plugbot-gui').delegate('#autowoot-btn', 'click', function() {

});

委托的

.on()方法声明过程是:

$(container).on(eventName, target, handlerFunction);

.live()

怎么样?

自jQuery&gt;以来,它已被弃用。 1.7

注意

避免转义字符