Javascript 使用jQuery(Wordpress)使整个div可单击

Javascript 使用jQuery(Wordpress)使整个div可单击,javascript,jquery,html,wordpress,Javascript,Jquery,Html,Wordpress,我安装了wordpress,并试图创建一个函数,使整个div可以根据其中的href进行单击。我已经找到了很多文件,告诉我要这样做 jQuery(".myBox").click(function($) { window.location = $(this).find("a").attr("href"); return false; }); 但它不起作用,点击后什么也没发生。但奇怪的是,如果我这样做只是为了测试 jQuery(".myBox").click(function($)

我安装了wordpress,并试图创建一个函数,使整个div可以根据其中的href进行单击。我已经找到了很多文件,告诉我要这样做

jQuery(".myBox").click(function($) {
    window.location = $(this).find("a").attr("href");
    return false;
});
但它不起作用,点击后什么也没发生。但奇怪的是,如果我这样做只是为了测试

jQuery(".myBox").click(function($) {
    window.location = "http://www.google.com"
    return false;
});
然后它就可以工作了,div将重定向到google.com,所以我实现脚本的方式似乎没有问题。我的第一种方法哪里出了问题?这是我的HTML

<div class="myBox">
<p><a href="http://www.example.com/notworking">This whole box should link but doesn't.</a></p>
</div>


<p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>p>0 0 0 0 0 0 0 0 0,y>0 0 0,n>0,n>0,n>0,n>0,n>0,n>p>0,,,,,>0 0,n>0,n>0,y,y,y,y,y,y,0,o,o,o,o,o,o,o,0 828282222; 0,u,u,u 82822;方方方方方方方方方方将将将将本本本本本本本本研究研究研究研究开展开展开展开展开展开展开展开展开展开展开展开展的研究,将将将将将将将将将将将该该该该行行行行行行"e,M,e,n,T,w,I,T,H,H,e,n,T,w,I,T,H,e,c,L,a,s,s,

不过有几点需要注意,您真的需要jQuery吗?好像是用锤子打死苍蝇。通常,对于“完全可点击的元素”,您可以使用
相对
定位父级,
绝对
定位链接,并将其设置为顶部/左侧和100%宽度和高度

.myBox{填充:10px;边框:1px实心#ccc;位置:相对;}
.cover{位置:绝对;顶部:0;左侧:0;宽度:100%;高度:100%;}
.封面:悬停{背景:rgba(0,95235.25);

整个框应该链接。

您的问题是单击事件处理程序的参数上有
$
。传入的变量是生成的
事件,而不是
jQuery
。有几种方法可以解决此问题

1.使用全局变量 2.将jQuery存储在$ 3.使用通过jQuery的文档ready,允许您命名它$ 4.使用简单的生活方式。类似于准备文档,但开销较小
您的问题是您正在将
$
传递到click事件处理程序中。第一个参数是
事件
,而不是
jQuery
。我可以问一下为什么不将div放在锚标记中吗?这不是一个选项吗?如果是,您将保存自己的函数等。我还可以问一下您是否确实有一个名为$wh的函数吗ich在您每次单击它时都会触发?@ItrySohard但是没有名为
$
的函数。用户假设提供给事件处理程序的第一个参数是jQuery。事实并非如此。他们很可能是因为使用了
$(document).ready()而产生了这种混乱
哪个将jQuery作为第一个传入argument@Taplar我已经假设了这样的事情,但我宁愿要求澄清,而不是仓促下结论。鉴于他们的参数上有
$
,询问他们是否有名为
$
的函数是完全不符合事实的。不管他们有什么函数<代码>$
在该函数中传递的是什么。就是这样,我没有在第二行额外更改事件处理程序。谢谢!
jQuery(".myBox").click(function($) {
    window.location = $(this).find("a").attr("href");
    return false;
});
jQuery(".myBox").click(function() {
    window.location = jQuery(this).find("a").attr("href");
    return false;
});
var $ = jQuery;

$(".myBox").click(function() {
    window.location = $(this).find("a").attr("href");
    return false;
});
jQuery(document).ready(function($){
  $(".myBox").click(function() {
    window.location = $(this).find("a").attr("href");
    return false;
  });
});
(function($){
  $(".myBox").click(function() {
    window.location = $(this).find("a").attr("href");
    return false;
  });
}(jQuery));