如何检查单击的元素是否包含具有某些 class 的元素
How to check if clicked element contains element with certain class
我正在编写一个 Tampermonkey 脚本,如果单击某个按钮,它应该执行一些代码。
在点击按钮之前,它应该检查点击的按钮是否包含图标。我还不知道这是否可能。有许多独特的按钮可以点击。
这是按钮:
<a class="btn aao_btn" id="aao_n">
<span id="available_aao_n" class="label label-danger"><span class="glyphicon glyphicon-remove"></span>
</a>
这就是我到目前为止所得到的。它总是 returns false
$("a.aao_btn").on("click", function (e) {
if (e.shiftKey) {
// Execute if Shift is pressed while clicking (working)
}
else {
if ( $(this).find("span").hasClass("label_danger") ) {
// Execute if clicked button contains a danger icon
}
else {
// No danger. Currently this is always the outcome.
}
}
return false;
});
if ( $(this).find("span.label-danger").length ) {
除了拼写错误外,这不会检查点击元素之前的状态。这是我最终得到的结果:
var danger_check = false;
$("a.aao_btn").mouseover (function() {
if ( $(this).find("span.label-danger").length ) {
danger_check = true;
}
else {
danger_check = false;
}
});
$("a.aao_btn").on("click", function (e) {
if (e.shiftKey) {
}
else {
if ( danger_check ) {
// Do this
}
else {
// Do that
}
}
return false;
});
我正在编写一个 Tampermonkey 脚本,如果单击某个按钮,它应该执行一些代码。
在点击按钮之前,它应该检查点击的按钮是否包含图标。我还不知道这是否可能。有许多独特的按钮可以点击。
这是按钮:
<a class="btn aao_btn" id="aao_n">
<span id="available_aao_n" class="label label-danger"><span class="glyphicon glyphicon-remove"></span>
</a>
这就是我到目前为止所得到的。它总是 returns false
$("a.aao_btn").on("click", function (e) {
if (e.shiftKey) {
// Execute if Shift is pressed while clicking (working)
}
else {
if ( $(this).find("span").hasClass("label_danger") ) {
// Execute if clicked button contains a danger icon
}
else {
// No danger. Currently this is always the outcome.
}
}
return false;
});
if ( $(this).find("span.label-danger").length ) {
除了拼写错误外,这不会检查点击元素之前的状态。这是我最终得到的结果:
var danger_check = false;
$("a.aao_btn").mouseover (function() {
if ( $(this).find("span.label-danger").length ) {
danger_check = true;
}
else {
danger_check = false;
}
});
$("a.aao_btn").on("click", function (e) {
if (e.shiftKey) {
}
else {
if ( danger_check ) {
// Do this
}
else {
// Do that
}
}
return false;
});