2013-06-17 5 views
0

Я думаю, что я может быть почти там (благодаря помощи нескольких других), но до сих пор не могу показаться, чтобы получить мои твиты, чтобы показать по одному в циклеJquery не работает, как ожидалось

var $container = $('#innerTwitter'); 

$.get('/feed', function (data) { 
    showTweets($(data).slice(0, 5)) 
}, 'json'); 

function showTweets(tweets) { 
    var tweetPs = $.map(tweets, function (t) { 
     return $('<p></p>').text(t.text).hide(); 
    }); 

    $container.append(tweetPs); 
    tweetPs[0].show(); 

    var currentIndex = 0; 

    var nextTweet = function() { 
     var nextIndex = currentIndex == tweetPs.length - 1 ? 0 : currentIndex + 1; 
     tweetPs[currentIndex].fadeOut(400, function() { 
      tweetPs[nextIndex].fadeIn(400); 
     }); 
     currentIndex = nextIndex; 
    }; 

    setInterval(nextTweet, 2000); 
} 

Within моя консоль (Chrome) Я получаю эту ошибку

Uncaught Error: NotFoundError: DOM Exception 8 

кто может видеть все, что я делаю неправильно

Любая помощь приветствуется

+2

Где вы получите сообщение об ошибке? – SLaks

+0

В хром-консоли – Richlewis

+0

Какой тип элемента '$ ('# innerTwitter');'? – epascarello

ответ

3

Поскольку вы используете jquery 1.7 (это был важный оператор, поскольку он не показывает ту же ошибку). Невозможно добавить массив (в последней версии вы можете).

эта линия:

$container.append(tweetPs); 

вызывает ошибку, попытайтесь Переберите каждый элемент и добавлять их по отдельности:

$.each($tweetPs, function(){ 
    $container.append(this); 
}) 
+0

спасибо за ответ, по-прежнему получаю ту же ошибку, хотя – Richlewis

+0

@Richlewis - этот ответ неверен, '$ .map' создаст массив объектов jQuery, а выполнение' tweetPs [0] 'получит первый объект jQuery из массива , а не собственный JS-элемент, как это было бы во многих других методах, 'tweetPs [0] .show()' является полностью действительным. – adeneo

+0

@Richlewis, Adeneo - это правильно. У вас есть сервер разработки? поэтому мы можем видеть вашу ошибку? –