将DIV实现为链接

Implementing a DIV as a link

本文关键字:链接 实现 DIV      更新时间:2023-09-26

如何使用jQuery实现单击时执行链接的div。在HTML中这样做很容易,如下所示,但似乎也可以使用jQuery解决方案。不过,我不确定如何在jQuery中执行指向另一个URL的链接。

div#download {
    width:200px;
    height:75px;
    background-image:url(../../images/download.png);
}
a#dwnld {
    display:block;
    width:100%;
    height:100%;
}

<div id="download">
   <a id="dwnld" href="../../pay_form.php?pn=10"></a>
</div>

这将适用于您当前的HTML:

$('#download').on('click', function() {
  $('a', this).trigger('click')
});

为什么你不能让你的链接成为display: block,并让它像<div>一样发挥作用?

点击div进入另一个站点

在正确准备DIV之后,您可以简单地说:

jQuery('.div-as-a-link').on('click', function(){
    window.location = jQuery(this).data('url');
});

这将适用于具有"div-as-a-link"类的每个div元素,该元素的data-url属性设置为要访问的站点的位置

演示在这里:http://jsfiddle.net/tadeck/LQu4v/

解决方案的完整代码

示例HTML是:

<div class="div-as-a-link" data-url="http://en.wikipedia.org/">
    This is a link that after being clicked leads you to some site.
</div>

其中最重要的部分(因此我们可以将可点击的div与其他div区分开来)和data-url属性,其中包含我们点击特定div后要访问的URL。

您也可以单独使这些特定的div以不同的方式出现(例如使用pointer光标):

.div-as-a-link {
    cursor: pointer;
}

最后还有一个JavaScript,它将事件绑定到具有div-as-a-link类的现有div

jQuery('.div-as-a-link').on('click', function(){
    window.location = jQuery(this).data('url');
});

这就是你所需要的:)

免责声明

但请记住:<a>元素是用于链接的,<div>不是。<div>用于对元素进行分组或设置样式,当没有其他元素可用时应使用(在这种情况下,您有另一个可用元素:<a>,只需正确设置样式即可)。

有关更多详细信息,请参阅:Mozilla开发者网络:div

试试这个:

#dwnld {
  background-image:url(../../images/download.png);
  display: block;
  width: 200px;
  height: 75px;
}
<a id="dwnld" href="../../pay_form.php?pn=10"></a>

如果您有兴趣使用jQuery,我的另一个答案和Tadeck的答案应该是您想要的。每个人的答案都涉及一个不同的最佳实践问题。

理想情况下,如果你有一个打开新页面的链接,你只需要使用一个常规的旧锚标记。如果你需要它来显示一个具有一定宽度和高度的背景图像,你不需要div。你只需要将锚定为块级元素。

这将找到href并在单击时重定向(window.location

$('#download').click(function(){
    window.location = $(this).find('a').attr('href');
});

我不确定,也许您必须在JQuery中使用触发器函数,如下所示:

$("#download").click(function (){
    $("#dwnld").trigger("click");
});
div#dwnld {
    display: block;
    width:200px;
    height:75px;
    background-image:url(../../images/download.png);
}
a#dwnld {
    display:block;
    width:100%;
    height:100%;
}

这应该对你有用。