如何在<a>标记上使用click事件

时间:2019-08-14 21:09:59

标签: javascript jquery html django

如何在没有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>

但是它不起作用。

在这种情况下我该怎么办?请帮忙。

4 个答案:

答案 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>