在脚本中我有以下内容:
$('#image-slider').empty();
在我的应用程序中清空了图像滑块元素。
我想在我的函数中直接使用ID引用,所以我在脚本的顶部声明了一些变量,包括:
var globals = [];
globals.markup = [];
globals.values = [];
globals.markup.image_slider = $('#image_slider');
然而,当我现在打电话:
globals.markup.image_slider.empty();
滑块 NOT 已清空。
任何想法我做错了什么?
编辑:
一个完整的例子:
$(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
..我的不好。
答案 0 :(得分:0)
看起来您的变量初始化脚本在创建元素之前运行,因此分配给globals.markup.image_slider的jquery集合为空。您需要将该代码放入DOMReady脚本中:
$(function() { globals.markup.image_slider = $('#image_slider'); });
更新:从代码示例中,看起来您已经这样做了。尝试移动它甚至更晚 - “加载”事件($(window).bind(“load”,...);) - 或检查你的逻辑以确保元素由文档呈现,而不是在以后动态创建你的“load_project”在哪里。
答案 1 :(得分:0)
正如@davin正确建议的那样,代码很好,问题出在其他地方。我不小心输入了image_slider
而不是image-slider
,因为div在标记中被识别。