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 38 Minuten 43 Sekunden
vor 39 Minuten 21 Sekunden
vor 40 Minuten 38 Sekunden
vor 42 Minuten 15 Sekunden
vor 43 Minuten 3 Sekunden
vor 2 Wochen 4 Tagen
vor 2 Wochen 5 Tagen
vor 2 Wochen 5 Tagen
vor 3 Wochen 3 Tagen
vor 3 Wochen 3 Tagen