如何在没有ID的代码上使用click事件
大家好,我下面有一个html标签:
bash
export LD_LIBRARY_PATH=/usr/local/cuda/lib64
./darknet
usage: ./darknet <function>
此html代码是jquery自动构建的,因此我无法在此标签上添加id或“ onlick”事件。
我想要的是当我单击此标签时,它将为我打开一个带有href的新窗口。我尝试使用
<a class="fc-day-grid-event fc-h-event fc-event fc-start fc-end fc-draggable fc-resizable" href="https://www.youtube.com/watch?v=XXXXX"><div class="fc-content"> <span class="fc-title">event</span></div><div class="fc-resizer fc-end-resizer"></div></a>
但是它不起作用。
在这种情况下我该怎么办?请帮忙。
答案 0 :(得分:4)
此html代码是jquery自动构建的,因此我无法在此标签上添加id或“ onlick”事件
如果您无法控制何时发生,则仍然可以使用事件委托来参与click事件:
$(document).on('click', '.fc-day-grid-event', function() {
...//
});
即使该代码在该元素存在之前运行,该方法仍然有效。问题中的代码仅在代码运行时元素存在时才有效。有关详细信息,请参见the documentation。
答案 1 :(得分:0)
由于代码是在页面渲染后生成的,因此您应该使用委托的事件处理程序:
$('body').on('click','.fc-day-grid-event', function() {
//...
});
答案 2 :(得分:0)
原始代码在类名之后和“单击”之后缺少撇号。
这应该有效:
> $('.fc-day-grid-event').on('click', function() {
...//
});
但是,您可能考虑检查该类是否还有其他dom元素。一个ID要安全得多。一种解决方法是,通过选择与所有元素都匹配的元素,在jQuery选择中使用多个类:
$('.fc-day-grid-event.fc-h-event.fc-event.fc-start.fc-end.fc-draggable.fc-resizable')
但这可能还不够,因为这些框架类似乎是动态创建的,可能已删除,选择范围可能太宽或太小。您可以尝试选择一个具有父/子关系的标签,在这种情况下,您将获得正确的元素,甚至可以使用元素的innerHTML。另外,您可以遍历JQuery-Selection并检查某些属性。
我不确定,是否要更改链接的目标或链接的目标窗口。在新窗口中打开链接的目标可以通过使用target属性与标准html一起使用
<a href='bla' target='_blank'>bla ...
如果您使用Javascript操纵href外部链接的目标地址,则在大多数情况下该代码可能难以维护,并且用户可能会感到困惑,因为他无法访问页面。我会尝试操作Javascript,即创建一个标签,或者如果这真的不可能,我将根据自己的需求操作现有的标签,并更改属性,如果您想使用jQuery:
对于链接的目标地址:
$('.fc-day-grid-event').attr("href", "www.newhrefvalue.com")
或者用于在新标签页中打开链接:
$('.fc-day-grid-event').attr("target", "_blank")
然后,您无需阻止或发出事件或创建事件侦听器。
答案 3 :(得分:-2)
<a onclick="doStuff(this)">Click Me</a>