Ergebnis 1 bis 2 von 2
  1. #1
    MsDos ist offline Grünschnabel
    registriert
    05-03-2013
    Beiträge
    7

    Question Contextmenu geht nach laden mit Ajax nicht mehr

    Hallo,

    mit folgendem Ajaxscript lade ich eine Datei rein.
    Code:
    var xmlhttp_gigliste;
    
    function gigliste(url)
    {
    	xmlhttp_gigliste=GetXmlHttpObject();
    	if (xmlhttp_gigliste==null)
    	{
    		alert ("Ihr Browser unterstüzt nicht dieses Script.");
    		return false;
    	}
    	
    	var str;	
    	str = './js/gigliste.test.test.php?search=';
    	url = str + url;
    			  		
    	xmlhttp_gigliste.onreadystatechange=stateChanged_gigliste;
    	xmlhttp_gigliste.open("GET",url,true);
    	xmlhttp_gigliste.send(null);
    
    	document.getElementById("gigliste").innerHTML="<div style=\'width:70px; height: 70px; margin: auto; margin-top: 100px; border-radius: 60px; background: rgba(2, 1, 0, 0.9);\'><img class='loading' style='width:80px; margin-top: -5px; margin-left: -5px;' height='80px' src='./img/loadings/loading.gif' /></div>";
    
    	return false;
    }
    
    function stateChanged_gigliste()
    {
       if (xmlhttp_gigliste.readyState==4)
       {
       document.getElementById("gigliste").innerHTML=xmlhttp_gigliste.responseText;
       }
    }
    
    
    function GetXmlHttpObject()
    {
    if (window.XMLHttpRequest)
      {
      //ie7+, firefox, chrome, opera, safari
      return new XMLHttpRequest();
      }
    if (window.ActiveXObject)
      {
      //ie6,ie5
      return new ActiveXObject("Microsoft.XMLHTTP");
      }
    return false;
    }
    Das Contextmenu ist in der Index Datei und in der Datei die von dem Ajaxscript geladen wird.
    In der Datei die geladen wird soll das Contextmenu ausgeführt werden.
    Nur leider funktioniert das nicht******!
    Wenn ich die Datei z.B. gigliste.test.test.php aufrufe dann geht es nur sobald ich es mit Ajax in die Index lade geht es nicht mehr.
    Hier die gigliste.test.test.php Datei:
    PHP-Code:
    <?php
    session_start
    ();

    /* Include */

    include('../test/config.te.inc.php');

    include(
    '../test/funktionen.te.inc.php');

    include(
    '../test/run.te.inc.php');

    $search $_GET['search'];
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
    <meta name="author" content="Marlight">
    <meta name="generator" content="www.marlight-music.de">
    <meta name="robots" content="noindex, nofollow, noarchive">
    <title>Gigliste</title>
    <link rel="stylesheet" type="text/css" href="../css/gigliste.css">
    <script type="text/javascript" language="javascript" src="http://cdn.jquerytools.org/1.2.7/full/jquery.tools.min.js"></script>
    <script type="text/javascript" language="javascript" src="./js/jquery.contextmenu.js"></script>
    </head>
    <body>
    <div id="log"></div>
    <table class="gigmanager" width="100%" border="0" cellpadding="0" cellspacing="0">
        <tbody>
            <? echo gigs($search); ?>
        </tbody>
    </table>
    <ul class="contextmenu" id="standart">
        <li data-type="open" class="folder">&ouml;ffnen</li>
        <li data-type="edit" class="edit">bearbeiten</li>
        <li data-type="delete" class="delete">l&ouml;schen</li>
    </ul>
    <ul class="contextmenu" id="public">
        <li data-type="open" class="folder">&ouml;ffnen</li>
        <li data-type="edit" class="edit">bearbeiten</li>
        <li data-type="public" class="public">ver&ouml;ffentlichen</li>
        <li data-type="delete" class="delete">l&ouml;schen</li>
    </ul>
    <ul class="contextmenu" id="gig">
        <li data-type="open" class="folder">&ouml;ffnen</li>
        <li data-type="edit" class="edit">bearbeiten</li>
        <li data-type="change" class="change">Zum Gig umwandeln</li>
        <li data-type="delete" class="delete">l&ouml;schen</li>
    </ul>
    </body>
    </html>
    Und hier das Contextmenu:
    Code:
    //<![CDATA[
    $(function(){
    var $current = null;
     
    $("[contextmenu2]").on("contextmenu", function (e) {
    	$('.contextmenu').hide();
        $current     = $(this);
        var contextmenu  = $(this).attr("contextmenu2");
        var $contextmenu = $("#" + contextmenu);
        
        if ($contextmenu.length == 0) {
            return;
        }
        
        console.log(this);
        
        e.preventDefault();
        e.stopPropagation();
        
        $contextmenu.show();
     
            
        $contextmenu.css({
            "top" : e.pageY + "px",
            "left" : e.pageX + "px",
            "bottom" : "",
            "right" : ""
        });
        
        if(e.pageY > (window.innerHeight-200)){
         $contextmenu.css({
            "bottom" : (window.innerHeight-e.pageY) + "px",
            "top" : ""
         });
        }
        
        if(e.pageX > (window.innerWidth-200)){
         $contextmenu.css({
            "right": (window.innerWidth-e.pageX) + "px",
            "left" : ""
         });
        }
        
        
        return false;
    });
     
    $(".contextmenu li").on("click", function () {
      location.href=("?action=" + $(this).data("type") + "&id=" + $current.data("id"));
    });
     
    $("body").on("click", function () {
       $(".contextmenu").hide(); 
    });
    });
    //]]>
    Hat jemand eine Idee wie man das hinbekommen kann das nach dem reinladen das Contextmenu noch funktioniert?

    Ich hoffe das ich mich jetzt nicht zu unverständlich ausgedrückt habe :/

  2. #2
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.667

    AW: Contextmenu geht nach laden mit Ajax nicht mehr

    Ein globales XHR-Objekt... [schallplatte an]Ein globales xhr-Objekt kann schnell Probleme bereiten und bietet so gut wie keine Vorteile. Versuche das zu vermeiden (so wie du immer versuchen solltest, globale Variablen zu vermeiden) - ist nicht wieter schwer.[/schallplatte aus]

    Zu deinem Problem: kkapsner - Programmieren - JavaScript - Nützliches - innerHTML und das <script>-Tag

Ähnliche Themen

  1. document.onclick nach document.write geht nicht mehr.
    Von Jürgen Richter im Forum JavaScript
    Antworten: 1
    Letzter Beitrag: 04-11-2010, 19:46
  2. JS - Menü geht auf, aber nicht mehr zu
    Von Leomuck im Forum JavaScript
    Antworten: 8
    Letzter Beitrag: 11-07-2008, 10:16
  3. ajax - lightbox geht nicht mehr??
    Von baileys-deluxe im Forum JavaScript
    Antworten: 0
    Letzter Beitrag: 09-05-2008, 07:42
  4. Xampp geht nicht mehr
    Von LaLALa im Forum Serverseitige Programmierung
    Antworten: 6
    Letzter Beitrag: 26-09-2004, 17:23
  5. maximieren bis zum geht nicht mehr
    Von xthetronx im Forum JavaScript
    Antworten: 6
    Letzter Beitrag: 09-09-2002, 21:57

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •