2010-12-08 8 views
1

Ich entwickle eine Website und ich möchte das Haupt-Div eine feste Höhe mit einem jquery vertikale Bildlaufleiste für Inhalte, die diesen Bereich überläuft. Dazu benutze ich das Plugin jScrollPane.Hinzufügen von jQuery vertikale Bildlaufleiste zu dynamischem Inhalt

Allerdings möchte ich diesen Inhalt dynamisch aus einem RSS-Feed laden, mit dem Plugin zRSSFeed (Ich bin ein neuer Benutzer, so kann ich nicht 2 Links!).

Um dies ich die RSSfeed Funktion wie folgt aufrufen müssen zu tun.

$ ("# feed") RSSfeed (.... Feed-URL und Optionen);

Ich möchte dann jScrollPane auf ein Div anwenden, das dynamisch durch den Aufruf der Rssfeed-Funktion erstellt wird. Jedes Mal, wenn ich versuche, das jQuery-Element zu finden, existiert es noch nicht.

Soweit ich weiß rssfeed enthält keine Callback-Funktion, die ich verwenden könnte, und ich habe versucht, Kette jScrollPane nach dem Aufruf von rssfeed zu funktionieren, aber das hat auch nicht funktioniert.

Irgendwelche Vorschläge ??

+0

würde ich empfehlen firefox mit dem Firebug-Plugin, falls du es noch nicht hast. Es ermöglicht das Debuggen von Javascript. –

+0

Können Sie einen Beispielcode von dem, was Sie versucht haben, veröffentlichen? –

+0

Das habe ich versucht, und ich benutzte Firebug. Ich habe auch versucht, die .children() - Funktion der Kette hinzuzufügen, um das innere div zu finden, das von rssfeed erstellt wurde, aber ohne Erfolg $ ("#feed") .rssfeed ('http: // news. search.yahoo.com/news/rss?p=query&ei=UTF-8&fl=0&x=wrt‘, { \t \t \t Grenze: 5 \t \t}) JScrollPane();. – delvec

Antwort

2

haben mit David zu vereinbaren, dass es eine Menge Blätter für, zu wünschen, aber alternativ könnte man nur einen Callback-Handler implementieren sich auf die Klasse:

In der gleichen Stelle wie David vorgeschlagen, direkt nach dem $(e).html(html); add folgende:

if(options.complete!=null) { options.complete();}

Dann in Ihrem html:

$(document).ready(function() { 
    $('#feed').rssfeed('http://myrssfeedurl', { 
    limit: 5, 
    complete: function() { $("#feed div").jScrollPane(); } 
    }); 
}); 
+0

Devrooms, das ist genau das, was ich tun möchte. Ich habe gerade keine Zeit, aber ich werde mit dem Plugin selbst basteln, um zu sehen, ob ich die Callback-Funktionalität hinzufügen kann. – delvec

+0

Das funktioniert auch, aber warum nach "null" suchen? Ich würde 'if (typeof options.complete == 'function') {options.complete.call (e); } ' – David

2

Ich hatte einen kurzen Blick auf das zRSSFeed Plugin und der Code lässt viel zu wünschen übrig ... aber Sie könnten Ihren eigenen Trigger am Ende der _callback Funktion hinzufügen, direkt nach dem $(e).html(html); bei der Ende des Skripts. Versuchen Sie:

$(e).trigger('rss'); 

Und dann in Ihrem Hauptprogramm können Sie für die RSS-Ereignis auf dem Element hören, wie:

$('#feed').bind('rss', function() { 
    // the html should now be injected 
}).rssfeed('/stuff.xml'); 

Es ist nicht schön, aber vielleicht eine schnelle Lösung, wenn das ist, was Sie brauche hier.

+0

ja, das Plugin ist nicht voll ausgestattet –

Verwandte Themen