使用jquery-1.2.7.tools.min.js中的覆盖工具。我有几个div设置为'img'和一些'a'标签上的叠加。
<img src="/image/test.png" rel="#1485">
<div id="1485" class="simple_overlay">
<a rel="1486">1</a>
<a rel="1487">2</a>
<a rel="1488">3</a>
<div id="1486" class="simple_overlay">
<a rel="1486">1</a>
<a rel="1487">2</a>
<a rel="1488">3</a>
<div id="1487" class="simple_overlay">
<a rel="1486">1</a>
<a rel="1487">2</a>
<a rel="1488">3</a>
当我点击其中一个“a”链接时,我希望显示与其id匹配的overlay div,以及其他要隐藏的ID。但是,使用像这样的jquery代码:
<script>
$(document).ready(function () {
$('img[rel]').overlay({
oneInstance: false
});
$('a[rel]').overlay({
oneInstance: false,
onLoad: function (event) {
$('.simple_overlay').not($(this)).hide();
}
});
});
</script>
或使用它:
$(this).siblings().hide()
“this”这个名称并不符合我的要求。本质上,所有带有类.simple_overlay的div都隐藏在hide()调用中。我希望显示带有点击的rel id的div,并隐藏其他的div,但似乎我错误地认为“这个”是什么......任何人都可以告诉我在这种情况下“这个”是什么?
答案 0 :(得分:0)
this
是一个DOM元素,例如,由click,each,bind等方法调用。
所以.overlay()需要指定一个回调函数才能知道我们正在谈论的“这个”。
试试这个来调试:
console.log($(this));
$('.simple_overlay').not($(this)).hide();
如果控制台显示$(this)未定义,您可能需要考虑修改代码以使用事件绑定而不是匿名函数
您始终可以将所需的选择器绑定到单击事件,并通过
隐藏它$('.simple_overlay').on('click', function() {
$(this).hide();
}
});