这应该是直截了当的,但我无法让它发挥作用。
我的HTML是:
<span class="more-button" onclick="homePageMore()">[read more...]</a>
功能是:
function homePageMore(){
$(this).hide('slow');
$("#home-page-more").slideToggle('slow');
}
我要定位的div很好地向下滑动,但我想要隐藏的范围(我试图用$(this)
选择)将无法隐藏。为什么不呢?
答案 0 :(得分:7)
将JS从DOM中删除。你甚至没有通过this
:
<span class="more-button">[read more...]</a>
Javascript:
$('.more-button').click(function(){
$(this).hide('slow');
$("#home-page-more").slideToggle('slow');
});
答案 1 :(得分:6)
<span class="more-button" onclick="homePageMore(this)">[read more...]</a>
function homePageMore(el){
$(el).hide('slow');
$("#home-page-more").slideToggle('slow');
}
OR
<span class="more-button" onclick="homePageMore.call(this)">[read more...]</a>
答案 2 :(得分:4)
this
指的是函数中的窗口而不是span。它确实引用了onclick属性中的span,因此您可以从那里将其传递给您的函数:
<span class="more-button" onclick="homePageMore(this)">[read more...]</a>
使用Javascript:
function homePageMore(that){
$(that).hide('slow');
$("#home-page-more").slideToggle('slow');
}
另外,只是一个提示,但您可能想要从您的范围中删除onclick并将其与其余的Javascript一起使用。请参阅此Wikipedia article和AlienWebGuy的回答。
答案 3 :(得分:0)
$(".more-button").click(
function homePageMore(){
$(this).hide('slow');
$("#home-page-more").slideToggle('slow');
});
从你的html代码中删除(onclick =“homePageMore(this)”)。
答案 4 :(得分:0)
我看到代码中有一个/ a标记,所以我假设有一个包裹该span标记的锚点。假设锚类是'more-button-link',我会像这样重写代码:
$('.more-button-link').click( function(event) {
event.preventDefault();
$(this).hide('slow');
$("#home-page-more").slideToggle('slow');
});
然后从span标记中删除onclick =“homePageMore()”。