【问题标题】:Why can't I select an object in this function?为什么我不能在这个函数中选择一个对象?
【发布时间】:2013-12-05 23:58:04
【问题描述】:

以下问题:有一个滑块,我想在某些点隐藏“上一张图片”和“下一张图片”按钮。所以有一个计数器,我想要 - 例如 - 隐藏第一个幻灯片元素上的 prev 按钮。因此我创建了这个函数:

function mark_active_pdf() {                    
        if(start_count==0){            
            $('.bx-prev').hide();            
        }            
}

我想编写一个函数并在每次调用另一张幻灯片时启动它(在单击下一个按钮、上一个按钮、左箭头或右箭头以及开始时)。会有更多的 if 条件 - 例如:在最后一张幻灯片上,下一个按钮将消失等。但到目前为止我无法选择和隐藏上一个按钮。 Firebug 显示我正在选择一个空对象:Object[]

但是如果我使用这个功能:

$( document ).ready(function() {
    if(start_count==0){ 
        $('.bx-prev').hide();
    }
});

可以选择对象(萤火虫显示:Object[a.bx-prev])并且按钮消失。

那么为什么会这样?如何解决?

【问题讨论】:

  • 你是如何执行第一个函数的?您很可能在幻灯片容器存在之前执行它。
  • with mark_active_pdf();在我触发工作功能的同一位置。而且在我的点击和按键功能中。我已经在它之前和之后放置了一个控制台日志。它运行但它没有选择元素,我不知道为什么:(
  • 因为没有要选择的元素。你了解$( document ).ready(function() { 的作用吗?
  • 是的。你是对的。现在可以选择元素,但它仍然没有消失。我不明白。我的意思是即使它不能在开始时选择元素,它应该能够在单击或 keyup 函数中调用,但现在我注意到没有调用。我的整个剧本似乎都搞砸了……

标签: jquery object hide selector


【解决方案1】:

正如 Kevin 所说,最可能的情况是您在加载 DOM 并且对象存在之前调用您的函数。试试这个:

$( document ).ready(function() {
    mark_active_pdf();
});

如果有效,您就知道问题出在哪里

【讨论】:

  • 问题是在调用函数时缺少参数 start_count。它应该是函数 mark_active_pdf(start_count);而不是简单的 mark_active_pdf();
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多