这是我的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,它不会捡起来。值得注意的是,即使它们是链接标记,光标在悬停在其上时也不会改变。
谢谢!
答案 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
避免转义字符