我对jQuery相当新,我想要做的是一旦文档准备就绪,我正在创建一个字段。在一个div。目前它的工作原理如下:
$(document).ready(function()
{
$("div.custom").eq(1).html("<a href='javascript:createPDF(\'Y\')' class=shortButton'>Download PDF</a>");
});
现在这不起作用,因为参数。但我可以创造这样的东西
$("div.custom a").click(function(e) {
//alert('clicked');
createPDF('Y');
return false;
});
为了改变这种情况,我将我的创作改为
$(document).ready(function()
{
$("div.custom").eq(1).html("<a href='#' class=shortButton'>Download PDF</a>");
});
但是,我个人认为,因为一旦加载页面它首先不存在,它不会将链接与点击功能连接。我该如何处理?
谢谢
答案 0 :(得分:3)
您必须在动态创建的元素上使用on来绑定事件。您可以使用事件委派。
$("div.custom").on("click", "a", function(e) {
//alert('clicked');
createPDF('Y');
return false;
});
委派事件的优势在于它们可以处理来自的事件 稍后添加到文档中的后代元素。通过 选择一个保证在当时存在的元素 委托事件处理程序附加,您可以使用委托事件 避免频繁附加和删除事件处理程序reference。
答案 1 :(得分:2)
$("div.custom").on("click", "a", function(event){
//alert('clicked');
createPDF('Y');
return false;
});
根据jquery
查看详细信息.. on答案 2 :(得分:1)
$("div.custom").on('click', 'a', function(e) {
//alert('clicked');
createPDF('Y');
return false;
});
[编辑]太晚了;)
答案 3 :(得分:1)
您可以在添加锚标记时挂钩事件,例如
$(document).ready(function () {
$("div.custom").eq(1).html("<a href='#' class=shortButton'>Download PDF</a>").find('a').click(function (e) {
e.preventDefault();
createPDF('Y');
});
});
答案 4 :(得分:1)
$(document).ready(function()
{
$("div.custom").eq(1).html("<a href='#' class=shortButton '>DownloadPDF</a>").find("a").click(function(e) {
alert('clicked');
createPDF('Y');
return false;
}); ;
});
你是对的,因为链接不存在。通过我给你的更正,在创建链接后添加了事件
希望有所帮助