2012-02-20 3 views
0

Comment puis-je modifier ce code afin que je puisse l'ajouter au document standard prêt pour jquery afin que tous mes scripts soient ensemble.Comment déplacer la fonction jquery/callback dans un document prêt

/* 
* Fetch RSS feed once page has finished loading. 
*/ 
(function(url, callback) { 
    jQuery.ajax({ 
     url: document.location.protocol + '//ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=10&callback=?&q=' + encodeURIComponent(url), 
     dataType: 'json', 
     success: function(data) { 
      callback(data.responseData.feed); 
     } 
    }); 
})('http://www.bet365.com/news/en/betting/sports/rss', function(feed){ 
    var entries = feed.entries, content, publishDate; 
    for (var i = 0; i < entries.length; i++) { 
     publishDate = new Date(entries[i].publishedDate); 
     date = publishDate.getDate() + '/' + publishDate.getMonth() + '/' + publishDate.getFullYear(); 
     content = truncateText((entries[i].contentSnippet) ? entries[i].contentSnippet : entries[i].content, 100); 
     jQuery('#rss > ul').append('<li><a href="' + entries[i].link + '" title=" ' + content + ' " target="_blank"><span> ' + date + '</span>' + entries[i].title + '</a></li>'); 
    } 
}); 
+0

$ (function() {/ * Tout le code ci-dessus ici * /}); –

+0

Rien ne vous empêche d'ajouter ce code à votre code .ready. Pouvez-vous être plus précis quant à ce que vous essayez de faire en le mettant là? Peut-être qu'il me manque quelque chose. – sngregory

Répondre

2

séparer les fonctions .. il sera bon à utiliser et à comprendre

var my_callback = function(feed){ // Change to desired URL 
    var entries = feed.entries, content, publishDate; 
    for (var i = 0; i < entries.length; i++) { 
     publishDate = new Date(entries[i].publishedDate); 
     date = publishDate.getDate() + '/' + publishDate.getMonth() + '/' + publishDate.getFullYear(); 
     content = truncateText((entries[i].contentSnippet) ? entries[i].contentSnippet : entries[i].content, 100); 
     jQuery('#rss > ul').append('<li><a href="' + entries[i].link + '" title=" ' + content + ' " target="_blank"><span> ' + date + '</span>' + entries[i].title + '</a></li>'); 
    } 

function make_ajax_call(url, callback) { 
    jQuery.ajax({ 
     url: document.location.protocol + '//ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=10&callback=?&q=' + encodeURIComponent(url), 
     dataType: 'json', 
     success: function(data) { 
      callback(data.responseData.feed); 
     } 
    }); 
} 

puis

$(document).ready(function(){ 
    make_ajax_call('http://www.bet365.com/news/en/betting/sports/rss',my_callback); 
}); 
+0

Cette séparation va également polluer l'espace de noms global avec certaines fonctions qui peuvent ne pas être aussi bonnes. Bien sûr, il peut être acceptable dans de nombreux cas ... –

+0

très agréable, merci de partager cette idée de garder une fonction pour charger les données, et une autre fonction pour faire toutes les manipulations des données. Merci. – blackhawk

0

envelopper simplement avec:

$(function(){ 
    // Your code here 
}); 

En fait $ est un alias pour $.ready (et il est le même que $(document).ready) si la fonction est passé comme argument

Questions connexes