我按类进行z-index管理..所以活动对象获得最顶层的类..
function topmost() {
$(".topmost").removeClass("topmost");
$("#thing").addClass("topmost");
}
此代码似乎无法正常工作,我无法理解为什么......
==编辑==
问题是$(".topmost").removeClass("topmost");
在页面上有多个时发现零结果。我经常使用这个类选择器,从来没有遇到过这个问题。这个类首先是由jQuery添加的,但无论如何都应该看到它。我查看我的检查器并记录选择,当我看到至少3个div与该类时,它会出现零。它是一个嵌套在一个对象中的函数,是一个问题吗?它可以扩展到对象范围并搜索整个DOM吗?
答案 0 :(得分:1)
如果我理解正确,你在dom加载后插入元素?如果是这样,您需要将事件委托给dom中存在的父元素。
$('body').on('click','div', function() {
$('.topmost').removeClass();
$(this).addClass('topmost');
});
body
可以替换为dom ready上存在的最接近的父元素
最后一件事,总是将事件绑定包装在$(document).ready
函数中,或者将脚本放在html代码的底部,以确保绑定时存在元素。
这是一个工作的例子
以下是将click事件应用于所有元素的方法
$('body').on('click','*', function() {
$('.topmost').removeClass();
$(this).addClass('topmost');
});
答案 1 :(得分:0)
试试这个
$(document).on('click', '#SELECTOR', function(){
$(".topmost").removeClass("topmost");
$(this).addClass("topmost");
});
在我放置#SELECTOR的地方,将其更改为您希望将其应用于
的任何元素对象甚至可以去那里,假设已经正确定义以选择你想要的东西
答案 2 :(得分:0)
这很容易解决..给元素一个ID。并使用ID作为选择器。
function topmost() {
$("#myDiv").removeClass("topmost");
$("#myDiv").addClass("topmost");
}
答案 3 :(得分:0)
试试这个:
function topmost(el) {
$(".topmost").removeClass("topmost");
if ($(el).length > 0) {
$(el).addClass("topmost");
}
}
答案 4 :(得分:0)
如果将.each添加到选择器中,有时候调试更容易:
function topmost() {
$(".topmost").each(function() {
console.log("yo");
$(this).removeClass("topmost");
});
$("#thing").addClass("topmost");
}
答案 5 :(得分:0)
调用此函数时页面上是否有回发?