Javascript 应用css图标时preventDefault()不工作?

Javascript 应用css图标时preventDefault()不工作?,javascript,jquery,html,tooltip,font-awesome,Javascript,Jquery,Html,Tooltip,Font Awesome,想知道是否有人经历过这种情况。每次单击工具提示时,我都尝试e.preventDefault()。单击时,它会加载带有youtube视频的iframe。但是,preventDefault()在这种情况下不起任何作用。我使用了javascript调试器,它正在查找spanClick()函数 发生了一件奇怪的事情。当我从类部分删除'fa'时,preventDefault()起作用。 因此,当class=“fa question circle right有tip-tip-left”时,默认设置起作用,i

想知道是否有人经历过这种情况。每次单击工具提示时,我都尝试
e.preventDefault()
。单击时,它会加载带有youtube视频的iframe。但是,
preventDefault()
在这种情况下不起任何作用。我使用了javascript调试器,它正在查找
spanClick()
函数

发生了一件奇怪的事情。当我从类部分删除'fa'时,
preventDefault()
起作用。 因此,当
class=“fa question circle right有tip-tip-left”
时,默认设置起作用,iframe视频将加载。但是,字体可怕的问号图标将不会加载,显然是因为类中缺少“fa”

Font Awesome图标绕过默认设置或创建另一个“单击”事件(发生在
spanClick()之前或之后)是否存在已知问题

提前谢谢。下面是应该相互交互的代码

<a href="http://www.youtube.com/INSERTYTLINK"><span data-width="250px" data-tooltip="" class="fa fa-question-circle right has-tip tip-left" onclick="spanClick()" title="Watch the video for more information"></span></a>

<script type="text/javascript">
function spanClick(e) {
    e.preventDefault();
}
</script>

这是因为onclick处理程序附加到span元素,而span元素不重定向,锚点重定向,必须阻止的是锚点单击,而不是span上的单击,无论是否阻止,都会冒泡

您还需要将事件添加为参数

<a href="http://www.youtube.com/INSERTYTLINK" onclick="spanClick(event)"><span data-width="250px" data-tooltip="" class="fa fa-question-circle right has-tip tip-left" title="Watch the video for more information"></span></a>

<script type="text/javascript">
function spanClick(e) {
    e.preventDefault();
}
</script>

函数span单击(e){
e、 预防默认值();
}


您还可以停止span

上的
e.stopPropagation
冒泡事件。您也可以将事件调用为
onclick='spanClick()'
,但不传递事件对象,如
onclick='spanClick(event)
e
未定义的
,除非您这样做。请参见此处:

调用函数时忘记将事件作为参数提供 啪嗒声

演示:


函数span单击(e){
e、 预防默认值();
}

这很有道理。然而,我试过了,没有任何改变。回发仍然发生,我也尝试了e.StopperPogation()并将事件传递到spanClick中。正如我在问题中提到的,当我从span类中删除'fa'类时,preventDefault()起作用。这是我在代码中修改的唯一一件事,它得到了期望的结果。但是,现在我没有问号图标..从更新的代码中,您有提交表单的javascript代码,如果问题是表单已提交,阻止锚的默认行为将无济于事,您必须删除提交表单的代码行。我已尝试注释掉该代码,以查看这是否会改变任何内容。我一会儿会更新。我的问题可能源于Sitefinity,我们正在使用的cms,而不是我们的代码…我不能帮你,我想说的是,如果你发布的功能在点击锚时运行,表单提交,页面重新加载,防止默认设置或执行任何其他操作都不会改变这一点,因为在javascript中添加了单击处理程序。这不起作用。我也试过了。我将用一些新的细节更新我的问题。
<a href="http://www.youtube.com/INSERTYTLINK" onclick="spanClick(event)"><span data-width="250px" data-tooltip="" class="fa fa-question-circle right has-tip tip-left" title="Watch the video for more information"></span></a>

<script type="text/javascript">
function spanClick(e) {
    e.preventDefault();
}
</script>
<a href="http://www.youtube.com/INSERTYTLINK">
    <span data-width="250px" data-tooltip="" class="fa fa-question-circle right has-tip tip-left" onclick="spanClick(event)" title="Watch the video for more information">hello
    </span>
</a>

<script type="text/javascript">
function spanClick(e) {
    e.preventDefault();
}
</script>