Firefox不会触发点击事件

时间:2015-09-22 08:57:54

标签: javascript jquery firefox

我只有一个firefox问题(这个脚本在chrome,opera,safari甚至edge中运行良好)。

问题: 在div容器中有一个带有a标签的下载按钮。现在我希望点击div-container指向另一个href而不是下载按钮。

了解方框:

<div class="imacontainer>
___________________________________
|.download-lightbox               |
|                                 |
|                                 |
|                                 |
|          [DL-BTN]               |
|                                 |
|                                 |
|                                 |
|                                 |
|                                 |
|_________________________________|
    <h3><a href="link">title</a></h3>
</div>

我写的解决方法是:

$("imacontainer").click(function(e){
    if(e.toElement.className == "download-lightbox") {
        e.preventDefault();
            var target = $(this).children("h3").children("a").attr("href");
            window.location.href = target;
    }
});

为什么这只在firefox中不起作用?

2 个答案:

答案 0 :(得分:1)

尝试使用e.target

if($(e.target).hasClass("download-lightbox")) {

答案 1 :(得分:1)

你的代码在IE中应该可以正常工作,但是其他浏览器可能在使用事件对象的toElement属性时遇到问题,该属性是特定于IE的属性,所以你需要首先检查哪个属性是可用的你的代码

 $("imacontainer").click(function(e){

     var toElem =  e.relatedTarget || e.toElement;

        if(toElem.className == "download-lightbox") {
            e.preventDefault();
                var target = $(this).children("h3").children("a").attr("href");
                window.location.href = target;
        }
    });

注意 - 我还没有在所有浏览器中尝试过您的代码,我只是想让您了解如何处理跨浏览器