Node per Ajax (jQuery) laden -> Fivestar funktioniert nicht
Eingetragen von jD (59)
am 13.01.2011 - 09:45 Uhr in
am 13.01.2011 - 09:45 Uhr in
Hallo zusammen,
ich möchte gerne einen Node per Ajax laden - allerdings funktioniert dann Fivestar nicht.
Ich denke das liegt an den Drupal.behaviors. Komme aber nicht dahinter
Hier mal mein Code - wäre klasse wenn jemand einen Tip hat.
JavaScript
Drupal.behaviors.node_vote = function(context) {
$('.next-node-vote',context).click(function () {
var nodevote = $('.node-vote-wrapper');
$(nodevote,context).html('<div class="node-vote-loader"> </div>');
var node = $(nodevote,context).load('bewerten/json');
//var view = $(response.display).insertBefore(target).next().remove().end().get(0);
Drupal.attachBehaviors(node);
});
return false;
};
PHP
<?php
function node_vote_js() {
$nid = db_fetch_object(db_query("SELECT nid FROM {node} ORDER BY RAND() LIMIT 1"))->nid;
$node = node_load($nid);
$node = node_build_content($node, $teaser, $page);
$output = component_get_node($node);
die($output);
}
?>
Den Node lade ich mit dem Component Modul.
Vielen Dank.
jD
- Anmelden oder Registrieren um Kommentare zu schreiben
Hi jd, hatte das gleiche
am 09.04.2011 - 15:29 Uhr
Hi jd,
hatte das gleiche Problem.
Fivestars wartet immer bis der Node vollständig geladen ist, deswegen würde ich
$('document').trigger("ready");
einfügen. Dein Code sähe dann so aus:Drupal.behaviors.node_vote = function(context) {
$('.next-node-vote',context).click(function () {
var nodevote = $('.node-vote-wrapper');
$(nodevote,context).html('<div class="node-vote-loader"> </div>');
var node = $(nodevote,context).load('bewerten/json');
//var view = $(response.display).insertBefore(target).next().remove().end().get(0);
Drupal.attachBehaviors(node);
$('document').trigger("ready");
});
return false;
};
Damit sagst du Fivestars, dass der Node vollständig geladen wurde.
lg
dennis605
Danke für eure Unterstützung
Dennis605