如何获取链接以使用 JavaScript-Generated Z-index
How to Get Links to Work with JavaScript-Generated Z-index
我正在重新调整 codepen 的用途,我有 运行 一个问题,下拉框中的 link 由于 [=42 生成的 z-index 而无法正常工作=].原笔中的代码也不起作用。
我了解 z-index,但在这种情况下,jQuery 代码将 z-index 10 应用于呈现其后方 link 的包含元素。每次框可见时 jQuery 也会迭代 z-index(参见代码部分)。
HTML 和 CSS 在代码笔中:
1) 原始代码笔:https://codepen.io/candroo/pen/wKEwRL
2) 我的代码笔:https://codepen.io/Rburrage/pen/PooGKoM?editors=1100
我需要这方面的帮助,请...谢谢。我觉得我忽略了一些非常简单的事情。
这是我尝试过的:
1) 删除 jQuery z-index 并用 CSS 添加它
2) 删除所有 jQuery z-index 引用只是为了看看我是否能让 link 工作
3) 将 link (.card-description a) 上的 z-index 更改为比所有其他 z-indexes
更高的数字
4) 阅读 Whosebug 上的所有 z-index 问题,看看我是否能弄明白
$jq(document).ready(function () {
$jq(document).ready(function () {
var zindex = 10;
$jq("div.card").click(function (e) {
e.preventDefault();
var isShowing = false;
if ($jq(this).hasClass("show")) {
isShowing = true
}
if ($jq("div.cards").hasClass("showing")) {
// a card is already in view
$jq("div.card.show")
.removeClass("show");
if (isShowing) {
// this card was showing - reset the grid
$jq("div.cards")
.removeClass("showing");
} else {
// this card isn't showing - get in with it
$jq(this)
.css({ zIndex: zindex })
.addClass("show");
}
zindex++;
} else {
// no cards in view
$jq("div.cards")
.addClass("showing");
$jq(this)
.css({ zIndex: zindex })
.addClass("show");
zindex++;
}
});
});
});
我在控制台中没有看到任何错误消息。为简单起见,我已将所有 link 更改为指向 Google。 link 似乎可以点击,但当我点击它时——框会折叠,但我没有被带到所需的 URL。
试试这个:
$("div.card").click(function (e) {
//e.preventDefault();
该行处于活动状态,如果您将其删除或像我的示例中那样对其进行评论,它应该会使网址正常工作。
不确定为什么它没有被注释甚至在那里...也许它是为了原始示例而没有使用 url 或者可能是我遗漏的其他东西...
我投票支持 Osvaldo,因为他的 post 让我调查了 prevenDefault() 直到我发现了 stopPropagation()。他的评论帮助我解决了这个问题。
我需要另一个函数来定位框内的 link (.card-description) 并对其调用 stopPropagation。
$jq(".card-description a").click(function (e) {
e.stopPropagation();
});
这解决了问题。谢谢大家!
我正在重新调整 codepen 的用途,我有 运行 一个问题,下拉框中的 link 由于 [=42 生成的 z-index 而无法正常工作=].原笔中的代码也不起作用。
我了解 z-index,但在这种情况下,jQuery 代码将 z-index 10 应用于呈现其后方 link 的包含元素。每次框可见时 jQuery 也会迭代 z-index(参见代码部分)。
HTML 和 CSS 在代码笔中:
1) 原始代码笔:https://codepen.io/candroo/pen/wKEwRL
2) 我的代码笔:https://codepen.io/Rburrage/pen/PooGKoM?editors=1100
我需要这方面的帮助,请...谢谢。我觉得我忽略了一些非常简单的事情。
这是我尝试过的:
1) 删除 jQuery z-index 并用 CSS 添加它
2) 删除所有 jQuery z-index 引用只是为了看看我是否能让 link 工作
3) 将 link (.card-description a) 上的 z-index 更改为比所有其他 z-indexes
更高的数字4) 阅读 Whosebug 上的所有 z-index 问题,看看我是否能弄明白
$jq(document).ready(function () {
$jq(document).ready(function () {
var zindex = 10;
$jq("div.card").click(function (e) {
e.preventDefault();
var isShowing = false;
if ($jq(this).hasClass("show")) {
isShowing = true
}
if ($jq("div.cards").hasClass("showing")) {
// a card is already in view
$jq("div.card.show")
.removeClass("show");
if (isShowing) {
// this card was showing - reset the grid
$jq("div.cards")
.removeClass("showing");
} else {
// this card isn't showing - get in with it
$jq(this)
.css({ zIndex: zindex })
.addClass("show");
}
zindex++;
} else {
// no cards in view
$jq("div.cards")
.addClass("showing");
$jq(this)
.css({ zIndex: zindex })
.addClass("show");
zindex++;
}
});
});
});
我在控制台中没有看到任何错误消息。为简单起见,我已将所有 link 更改为指向 Google。 link 似乎可以点击,但当我点击它时——框会折叠,但我没有被带到所需的 URL。
试试这个:
$("div.card").click(function (e) {
//e.preventDefault();
该行处于活动状态,如果您将其删除或像我的示例中那样对其进行评论,它应该会使网址正常工作。
不确定为什么它没有被注释甚至在那里...也许它是为了原始示例而没有使用 url 或者可能是我遗漏的其他东西...
我投票支持 Osvaldo,因为他的 post 让我调查了 prevenDefault() 直到我发现了 stopPropagation()。他的评论帮助我解决了这个问题。
我需要另一个函数来定位框内的 link (.card-description) 并对其调用 stopPropagation。
$jq(".card-description a").click(function (e) {
e.stopPropagation();
});
这解决了问题。谢谢大家!