Javascript 正在尝试在prepend元素上添加click事件:

Javascript 正在尝试在prepend元素上添加click事件:,javascript,jquery,html,sharepoint,Javascript,Jquery,Html,Sharepoint,尝试在单击图像时重定向到其他页面 $('.grid').prepend('<div id="new" style="width:50px;background-color:#1879A9;padding-left:3px;margin-top:10px"><a href="#somelink"><img id="test" src="#somesource"></a></div>'); 已编辑 我认为您只是创建了多个相同的ID元素

尝试在单击图像时重定向到其他页面

 $('.grid').prepend('<div id="new" style="width:50px;background-color:#1879A9;padding-left:3px;margin-top:10px"><a href="#somelink"><img id="test" src="#somesource"></a></div>'); 

已编辑

我认为您只是创建了多个相同的ID元素

将usingid更改为class,应该可以正常工作


已编辑

根据询问者的评论进行修改

$('.grid')。每个(函数(事件){
if($(this).find('.test').length>0)返回false;
var_html='';
var new_node=$(_html);
$(this).prepend(新的_节点);
新建节点。查找('.test')。单击(函数(事件){
event.preventDefault();
警报($(this.attr('src'));
//重定向到这里
//window.location.href=$(this.parent().attr('href');
})
})
.grid{
宽度:40px;
高度:40px;
背景色:红色;
}





可能是这样的:

$('.grid').on('click', window.location.href = 'page_url');

首先,您必须使用类而不是id(当多个元素的id相同时,语义上是错误的)

也可以在单击图像时重定向到页面, 首先,防止在网格上单击时执行默认操作,这样在直接单击链接时不会重定向

然后获取父标记图像的链接,并使用$(this.parent(“a”).attr(“href”)<代码>窗口.位置.href

请参阅下面的代码片段:

$('.grid')。前缀(
'');
$('.grid')。在('click','.test',函数(e)上{
e、 预防默认值();
var urlRedirect=$(this.parent(“a”).attr(“href”);
log(“重定向到…”+urlRedirect);
//这将在2秒后重定向
setTimeout(函数(){
window.location.href=urlRedirect;
},2000)
});
.test{
宽度:20px;
高度:20px;
}


请添加更多详细信息。我们不知道你的名字。如果用户在类为
网格的元素中单击id为
test
的元素,您就添加了一个事件。请注意,您应该更改预先添加的HTML以使用类,而不是
id
,因为您将最终添加多个id为
的元素,这是无效的。通过这种方式,您还可以使用CSS样式表而不是内联样式,这应该尽可能避免。如果您使用带有有效href的
元素,则在此基础上添加事件侦听器是没有用的。链接上的单击事件将首先触发。它按预期工作,虽然不建议在使用prepend use类而不是Ids时使用Ids。除了空格,您到底更改了什么?没有更改。我认为代码很好,所以我只是举了个例子。在这种情况下,这不是答案。如果OP不起作用,则必须存在一个根本问题,但这并不能解决OK。我只是觉得让它工作就是答案。我现在该怎么办?删除此答案?这可能是最好的1)这将在用户单击
.grid
之前立即重定向2)事件处理程序需要被委派,因为内容在DOM加载后被追加3)OP没有表示他们想要重定向页面。。“.grid”是一个内置的sharepoint类。我正在尝试用图像标记将我的div元素预先添加到它。我想在单击该图像时重定向到另一个页面。这是否有帮助:)
$('.grid').on('click', window.location.href = 'page_url');