Я пытаюсь преобразовать довольно простой скрипт, который берет результаты поиска из Twitter и выводит их в неупорядоченный список.Я впервые пытаюсь написать плагин, и кажется, что он не запускает весь код, когда я его называю.Скрипт сам по себе работает нормально, вот код, который я написал для плагина:
(function($) {
$.fn.tweetGet = function(options) {
var defaults = {
query: 'from:twitter&rpp=10',
url: 'http://search.twitter.com/search.json?callback=?&q='
};
var options = $.extend(defaults, options);
return this.each(function() {
// Get tweets from user query
$.getJSON(options.url + options.query, function(data) {
var tweets = [];
$.each(data.results, function(i, tweet) {
tweets.push('<li>' + tweet.text.parseURL().parseUsername().parseHashtag() + '</li>');
});
$('#target').append('<ul>' + tweets.join('') + '</ul>');
});
// Parse tweets for URLs and convert to links
String.prototype.parseURL = function() {
return this.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&~\?\/.=]+/g, function(url) {
return url.link(url);
});
};
// Parse tweets for twitter usernames and convert to links
String.prototype.parseUsername = function() {
return this.replace(/(?:^|\s)@[a-zA-Z0-9_.-]+\b/, function(user) {
var username = user.replace("@","")
return user.link("http://twitter.com/"+username);
});
};
// Parse tweets for hashtags and convert to links
String.prototype.parseHashtag = function() {
return this.replace(/[#]+[A-Za-z0-9-_]+/g, function(hash) {
var hashtag = hash.replace("#","%23")
return hash.link("http://search.twitter.com/search?q="+hashtag);
});
};
});
};
})(jQuery);
Функция вызывается с помощью:
$('#target').tweetGet({query: 'from:twitter&rpp:10'});
Все, что находится за пределами returnthis.each (function () {}; работает нормально, но ничего внутри не срабатывает и не дает никаких ошибок. Все учебники, которые я прочитал, используют этот же базовый формат, но я не могувыяснить, что я делаю не так ...