我只有一个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中不起作用?
答案 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;
}
});
注意 - 我还没有在所有浏览器中尝试过您的代码,我只是想让您了解如何处理跨浏览器