JQuery wird mehrfach ausgeführt
am 16.10.2014 - 14:28 Uhr in
Hallo FOrum,
ich habe den Spaß mit dem laden eines Nodes via Ajax fast gelöst, aktuell wird nur leider mein JavScript (jQuery-Code) mit jedem Click häufiger ausgeführt, vielleicht schaut von euch mal jemand mit drauf:
Ich vermute, es liegt daran, das bei jedem Ajax-Node-Reload die JavaScript-Datei mit folgendem Code erneut und zusätzlich geladen wird:
Hier der JavaScript-Part (ist über das Theme eingebunden):
(function ($).
{
Drupal.behaviors.ajaxsuche =.
{
attach:function(context,settings)
{
var old = null;
$('.search-result').on('click',function(e)
{
console.log(this);
if (old!=null)
{
$(old).removeClass('search-result-check');
}
old=this;
$(this).addClass('search-result-check');
e.preventDefault();//verhindert den eigentlich Link
//console.log($('.title a',this).attr('href'));
var nodeid_string = $('a',this).attr('href');
var nodeid = nodeid_string.replace(/\D/g,'');
$('.l-region--detail').text(nodeid);
//$('.l-region--detail').load('http://fw701/advmis/ajaxmodul/'+nodeid); klappt auch,jedoch gleicher Fehler
$.ajax(
{
url: 'http://fw701/drupaversion/ajaxmodul/'+nodeid,
success: function(response,status)
{
$('.l-region--detail').html(response);
}
});
});
}
};
})(jQuery);Und hier eventuell der Code der mir den Node liefert (das mache ich über ein extra Modul):
<?php
function ajaxmodul_menu()
{
$items = array();
$items['ajaxmodul'] = array(
'type' => MENU_CALLBACK,
'page callback' => 'loadsearchednode',
'page arguments' => array(1),
'access arguments' => array('access content'),
'access callback' => TRUE,
'delivery callback' => 'ajax_callback',
);
return $items;
}
function loadsearchednode($nodeid)
{
$node = node_load($nodeid);
return node_view($node);
}
function ajax_callback($page_callback_result) {
// Only render content
$content = drupal_render($page_callback_result);
// Add CSS ans JS files, add some markup
$html = '<html><head><title></title>' . drupal_get_css() . drupal_get_js() . '</head><body class="jquery-ajax-load">' . $content . '</body></html>';
print $html;
// Perform end-of-request tasks.
drupal_page_footer();
}
?>Über drupal_get_css und drupal_get_js werden die Files ja immer mit geladen, aber ich brauche diese ja nur einmal und nicht xFach. Vielleicht kennt von euch jemand das Problem.
vielen Dank für eure Hilfe.
- Anmelden oder Registrieren um Kommentare zu schreiben

Neue Kommentare
vor 3 Tagen 14 Stunden
vor 4 Tagen 8 Stunden
vor 5 Tagen 2 Stunden
vor 1 Woche 2 Tagen
vor 1 Woche 2 Tagen
vor 1 Woche 6 Tagen
vor 1 Woche 6 Tagen
vor 1 Woche 6 Tagen
vor 4 Wochen 3 Tagen
vor 4 Wochen 4 Tagen