jQuery link 在点击父级 div 时有效
jQuery link works when click on parent parent div
我有一个 div (A),在另一个 div(B) 里面,然后我有我的 link。我希望发生的是,当我们点击 A 时,div(B) 中的 link 起作用。
我成功地与一位家长一起完成了,但不是 2...
$(".block").mouseover(function() {
if ($(".block .button").length) {
$(this).css("cursor", "pointer").find(".invisible.button").css("text-decoration", "none");
}
}).mouseout(function(e) {
e.preventDefault();
e.stopPropagation();
$(this).find(".invisible.button").css("text-decoration", "none");
}).click(function(e) {
document.location.href = $(this).find(".invisible.button").attr("href");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<div class="wrap">
<div class="wrap-in block">
<p>content</p>
<a class="invisible button" href="mylink"> go</a>
</div>
</div>
单击“.wrap”div 时,我无法找到让我的 link 工作的方法,如果有人可以提供帮助:)
更多信息:
如果"wrap"没有link,我还有一个class:
关键是如果我这样做:
$(".wrap").mouseover(function() {
if ($(".block .button").length) {
$(this).css("cursor", "pointer").find(".invisible.button").css("text-decoration", "none");
}
}).mouseout(function(e) {
e.preventDefault();
e.stopPropagation();
$(this).find(".invisible.button").css("text-decoration", "none");
}).click(function(e) {
document.location.href = $(this).find(".invisible.button").attr("href");
});
它可以工作,但它也可以在 div 没有 任何 link 的情况下工作...
我编写代码以停止 "nolink"
$('.nolink').on('click', function(e){
e.preventDefault();
e.stopImmediatePropagation();
});
您是否想做这样的事情:
$(".wrap").on("click", function() {
window.location = $(this).children("div.wrap-in").children("a.invisible").attr("href");
});
如果anchor是Eternally hidden,有几种方案会更"correct"。
就像把包装器变成锚。如果容器总是会导致页面重定向,为什么不直接将整个 div 设为 link?
此外,您可以将 href 地址隐藏在包装器的数据标签中。
<div class="wrapper" data-href="myUrl">(...)</div>
$(".wrap").on("click", function() {
window.location.replace($(this).data("href"));
});
好的,非常感谢您的帮助!我找到了一种方法来做我真正想做的事。因为我只需要在包含 link 的 div 上添加 link 和光标。
这是我清理过的代码(我希望),它可以工作,没有未定义的 link
$(".wrap").mouseover(function(){
if($(this).find("a.invisible").length){
$(this).css("cursor","pointer");
}
}).mouseout(function(e){
$(this).css("cursor","auto");
});
$(".wrap").on("click", function() {
if($(this).find("a.invisible").length){
btn = $(this).find("a.invisible");
window.location = $(this).find("a.invisible").attr("href");
}
});
我有一个 div (A),在另一个 div(B) 里面,然后我有我的 link。我希望发生的是,当我们点击 A 时,div(B) 中的 link 起作用。
我成功地与一位家长一起完成了,但不是 2...
$(".block").mouseover(function() {
if ($(".block .button").length) {
$(this).css("cursor", "pointer").find(".invisible.button").css("text-decoration", "none");
}
}).mouseout(function(e) {
e.preventDefault();
e.stopPropagation();
$(this).find(".invisible.button").css("text-decoration", "none");
}).click(function(e) {
document.location.href = $(this).find(".invisible.button").attr("href");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<div class="wrap">
<div class="wrap-in block">
<p>content</p>
<a class="invisible button" href="mylink"> go</a>
</div>
</div>
单击“.wrap”div 时,我无法找到让我的 link 工作的方法,如果有人可以提供帮助:)
更多信息: 如果"wrap"没有link,我还有一个class:
关键是如果我这样做:
$(".wrap").mouseover(function() {
if ($(".block .button").length) {
$(this).css("cursor", "pointer").find(".invisible.button").css("text-decoration", "none");
}
}).mouseout(function(e) {
e.preventDefault();
e.stopPropagation();
$(this).find(".invisible.button").css("text-decoration", "none");
}).click(function(e) {
document.location.href = $(this).find(".invisible.button").attr("href");
});
它可以工作,但它也可以在 div 没有 任何 link 的情况下工作...
我编写代码以停止 "nolink"
$('.nolink').on('click', function(e){
e.preventDefault();
e.stopImmediatePropagation();
});
您是否想做这样的事情:
$(".wrap").on("click", function() {
window.location = $(this).children("div.wrap-in").children("a.invisible").attr("href");
});
如果anchor是Eternally hidden,有几种方案会更"correct"。
就像把包装器变成锚。如果容器总是会导致页面重定向,为什么不直接将整个 div 设为 link?
此外,您可以将 href 地址隐藏在包装器的数据标签中。
<div class="wrapper" data-href="myUrl">(...)</div>
$(".wrap").on("click", function() {
window.location.replace($(this).data("href"));
});
好的,非常感谢您的帮助!我找到了一种方法来做我真正想做的事。因为我只需要在包含 link 的 div 上添加 link 和光标。
这是我清理过的代码(我希望),它可以工作,没有未定义的 link
$(".wrap").mouseover(function(){
if($(this).find("a.invisible").length){
$(this).css("cursor","pointer");
}
}).mouseout(function(e){
$(this).css("cursor","auto");
});
$(".wrap").on("click", function() {
if($(this).find("a.invisible").length){
btn = $(this).find("a.invisible");
window.location = $(this).find("a.invisible").attr("href");
}
});