0

在一个脚本中,我有以下内容:

$('#image-slider').empty();

这清空了我的应用程序中的图像滑块元素。

我想在我的函数中直接使用 ID 引用,所以我在脚本顶部声明了一些变量,包括:

var globals = [];
globals.markup = [];
globals.values = [];
globals.markup.image_slider = $('#image_slider');

但是,当我现在打电话时:

globals.markup.image_slider.empty();

滑块未清空

任何想法我做错了什么?

编辑:

一个完整的例子:

$(document).ready(function(){
  var projects = <?= $json; ?>;
  var globals = [];
  globals.markup = [];
  globals.values = [];

  globals.markup.title = $('#title');
  globals.markup.image_slider = $('#image_slider');


  function load_project(f)
  {
      var potential = window.location.hash.substring(1);

      $.each(projects, function(i, project){

          if (project.permalink == potential)
          {
              // Manage stats and fields
              $('#title').text(project.title);
              $('#agency').text(project.agency);
              $('#description').text(project.description);
              $('#website_url').attr('href', project.website_url);

              // Manage images
              globals.markup.image_slider.empty();
    .....

编辑:我是个白痴。这是一个简单的错字。 image_slider应该是image-slider..我的错。

4

2 回答 2

0

看起来您的变量初始化脚本在创建元素之前运行,因此分配给 globals.markup.image_slider 的 jquery 集合是空的。您需要将该代码放入 DOMReady 脚本中:

$(function() { globals.markup.image_slider = $('#image_slider'); });

更新:从代码示例中,看起来您已经这样做了。稍后再尝试移动它-“加载”事件( $(window).bind("load", ...); )-或检查您的逻辑以确保该元素由文档呈现,而不是稍后动态创建你的“load_project”某处。

于 2012-06-04T14:41:07.177 回答
0

正如@davin 正确建议的那样,代码很好,问题出在其他地方。我不小心输入了div,image_slider而不是image-slider在标记中标识了div。

于 2012-06-04T14:52:48.007 回答