php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 28.09.2010, 11:00  
Erfahrener Benutzer
 
Registriert seit: 22.03.2009
Beiträge: 109
PHP-Kenntnisse:
Fortgeschritten
tarian befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Javascript funktioniert bei Callback nicht mehr

Hallo,

ich erstelle dynamisch verschiedene Elemente in einer Liste.

Code:
<script>
...
$active_layout.find("ol").sortable({
...
})
</script>

<div>
<ol class="context">
<li class="context"></li> <-- Sort,Context
<li></li> <-- Sort,Context
 ...
</lo>
</div> 
Codebeispiel, ich gehe davon aus das der Code richtig ist!

Auf diese einzelnen Elemente will ich einmal ein Contextmenu, sowie die Jquery Sort Funktion anwenden. Problem ist bei den dynamisch erstellen Elementen geht es nicht.

Beim umliegenden Div, der von vorneherein vorhanden ist funktioniert es jedoch ohne weiteres.

Ist es normal das im nachhinein eingefügte Teile die Funktionen nicht annehmen?
tarian ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 28.09.2010, 11:20  
Erfahrener Benutzer
 
Registriert seit: 01.12.2009
Beiträge: 645
PHP-Kenntnisse:
Fortgeschritten
draco88 befindet sich auf einem aufstrebenden Ast
draco88 eine Nachricht über ICQ schicken
Standard

jQuery interessiert es nicht, ob ein Element im Quelltext steht oder per JS ins DOM eingefügt wurde. Schreib am besten mal allen relevanten Code hier rein, sonst kann hier keiner Helfen.
Kristallkugeln sind grad alle put
draco88 ist offline   Mit Zitat antworten
Alt 28.09.2010, 11:35  
Erfahrener Benutzer
 
Registriert seit: 22.03.2009
Beiträge: 109
PHP-Kenntnisse:
Fortgeschritten
tarian befindet sich auf einem aufstrebenden Ast
Standard

Sort

Code:
     $active_layout.find("#form_tabs ol").sortable({
            cursor: 'ns-resize',
            axis: 'y',
            handle: '.handle',
            start: function(e,ui) {
                $('.wysiwyg').each(function(){
                    var name = $(this).attr('name');
                    if (name) {
                        if (tinyMCE.get(name)) {
                            tinyMCE.execCommand('mceRemoveControl', false, name);
                        }
                    }
                });
            },
            stop: function(e,ui) {
                Admin.formbuilder.editors();
            }
        });
Das ist die Sortfunktion, auf das div geht es sobald aber ol dazu kommt ist Schluss.

Das Contextmenu lass ich mal raus das würde glaube den Rahmen im Moment etwas sprengen, ich denke auch das ist das gleiche Problem.
tarian ist offline   Mit Zitat antworten
Alt 28.09.2010, 12:07  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.266
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Meldet Firebug einen Syntaxfehler (ich sehe gerade keinen)? Benutz try/catch für alle relevanten Codeblöcke, fang an zu debuggen, bis zu welcher Stelle im Code du kommst.

Edit: Dir ist schon klar, dass das HTML zur Laufzeit des Skriptes auch existieren muss? In deinem Fall führst du erst das Skript aus, und erzeugst anschließend das HTML dafür. Natürlich läuft der jQuery-Selector dann ins Leere.
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 28.09.2010, 12:22  
Erfahrener Benutzer
 
Registriert seit: 22.03.2009
Beiträge: 109
PHP-Kenntnisse:
Fortgeschritten
tarian befindet sich auf einem aufstrebenden Ast
Standard

Nirgends ein Fehler, hab ich alles schon versucht. Deswegen bin ich etwas ratlos.

@Chriz Das HTML Element ist vorm ausführen vorhanden. Wie kommst du darauf das es nicht so ist?

Geändert von tarian (28.09.2010 um 12:28 Uhr).
tarian ist offline   Mit Zitat antworten
Alt 28.09.2010, 12:31  
Erfahrener Benutzer
 
Registriert seit: 01.12.2009
Beiträge: 645
PHP-Kenntnisse:
Fortgeschritten
draco88 befindet sich auf einem aufstrebenden Ast
draco88 eine Nachricht über ICQ schicken
Standard

Weil du es im Codebeispiel vorher aufgerufen hast.

Zitat:
Zitat von tarian Beitrag anzeigen
Code:
<script>
...
$active_layout.find("ol").sortable({
...
})
</script>

<div>
<ol class="context">
<li class="context"></li> <-- Sort,Context
<li></li> <-- Sort,Context
 ...
</lo>
</div> 
draco88 ist offline   Mit Zitat antworten
Alt 28.09.2010, 12:35  
Erfahrener Benutzer
 
Registriert seit: 22.03.2009
Beiträge: 109
PHP-Kenntnisse:
Fortgeschritten
tarian befindet sich auf einem aufstrebenden Ast
Standard

Ok das Codebeispiel ist schlecht gewählt.

Code:
layout: function(e)
    {
            $active_layout.find("#form_builder_toolbox li").click(function(){
            var thisTab = $('#form_tabs .ui-tabs-selected').find("a").attr("href");
            var into = $("#form_builder_panel "+thisTab+" ol");
            var type = $(this).attr('id');
            var e = this;
            $(this).addClass('loading');
            $.get(Admin.formbuilder.BASEURL+'?action=element&type='+type,function(result){
                $(e).removeClass('loading');
                $(into).prepend(result);
                var $newrow = $(into).find('li:first');
                //style
                Admin.formbuilder.editors();
                Admin.formbuilder.properties();
                Admin.formbuilder.layout($newrow);
                //show
                $newrow.hide().slideDown('slow');
                $(into).sortable("refresh");
                delete result;
            });
        });

            $active_layout.find("#form_builder_panel ol").sortable({
            cursor: 'ns-resize',
            axis: 'y',
            handle: '.handle',
            start: function(e,ui) {
                $('.wysiwyg').each(function(){
                    var name = $(this).attr('name');
                    if (name) {
                        if (tinyMCE.get(name)) {
                            tinyMCE.execCommand('mceRemoveControl', false, name);
                        }
                    }
                });
                    },
            stop: function(e,ui) {
                Admin.formbuilder.editors();
            }
        });}
so sieht es gekürzt aus. Durch $(into).sortable("refresh") wird doch die Liste neu geladen oder liege ich da falsch?

Geändert von tarian (28.09.2010 um 12:44 Uhr).
tarian ist offline   Mit Zitat antworten
Alt 28.09.2010, 12:55  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.266
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von tarian Beitrag anzeigen
@Chriz Das HTML Element ist vorm ausführen vorhanden. Wie kommst du darauf das es nicht so ist?
Weil dein JS-Code oberhalb des HTML-Codes steht und HTML-Seiten inklusive JavaScript nunmal von oben nach unten ausgeführt werden. Sofern du also kein $(document).ready() oder einen anderen Trigger verwendest, um die Funktion auszuführen, ist dein jQuery Selector eben leer.

Fang doch einfach mal an mit Debuggen, sprich:
- Trifft der Selector überhaupt etwas? alert($("test").size())
- Kommst du überhaupt an die relevanten Codestellen? (alert oder console.log mit Firebug einbauen)

Wenn das alles nichts hilft, stell bitte ein Onlinebeispiel ins Netz.
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 28.09.2010, 13:29  
Erfahrener Benutzer
 
Registriert seit: 22.03.2009
Beiträge: 109
PHP-Kenntnisse:
Fortgeschritten
tarian befindet sich auf einem aufstrebenden Ast
Standard

Bei dem Contextmenu nutze ich document.ready. Jquery Sortable bietet mir die Refreshfunktion, die ich auch nach dem erstellen nutze. Eigentlich dürfte es daran nicht liegen.

Kann leider nichts online stellen. Beim Debuggen bekomm ich auch keinen aufschlussreichen Daten. Komisch Komisch.
Ich merke nur das er bei $active_layout.find("#form_builder_panel ol").sortable start: nicht triggert.

Geändert von tarian (28.09.2010 um 13:37 Uhr).
tarian ist offline   Mit Zitat antworten
Alt 28.09.2010, 13:47  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.266
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Ein bißchen verliere ich langsam die Lust dir zu helfen, weil du eigentlich nur ein bisschen JavaScript postest, nicht wirklich erwähnst was es machen soll und alle Vorschläge, die bei mir immer zur Lösung führen irgendwie abwiegelst. Was heißt keine aufschlussreichen Daten? Entweder du bekommst eine Ausgabe oder keine. Beides ist aufschlussreich, weil du dann weißt ob der Code ausgeführt wird oder nicht.
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
timing Probleme bzw Zusammenspiel PHP Javascript thica PHP Tipps 2009 2 19.02.2010 19:06
[Erledigt] JavaScript Weiche bei Formular? markus228 JavaScript, Ajax und mehr 1 09.08.2009 14:16
[Erledigt] Variable von Javascript mit 1x1px-Bild an PHP übergeben beneblack PHP Tipps 2009 18 03.05.2009 22:40
[Erledigt] Javascript in PHP Aufrufen coyboc PHP Tipps 2009 17 10.04.2009 15:28
1101: 10x JavaScript und kein Ende ist abzusehen… Nikolaus 2.0 Adventskalender 2008 9 13.12.2008 20:11
JAvascript und Php - code funktioniert nicht Black-Devil JavaScript, Ajax und mehr 1 01.08.2008 15:01
Javascript Bildercache Zergling-new HTML, Usability und Barrierefreiheit 3 16.04.2008 05:44
javascript funktioniert nicht (eingabeabfrage) seejay HTML, Usability und Barrierefreiheit 10 09.08.2005 13:24
[Erledigt] Mit PHP prüfen ob JavaScript beim Browser aktiviert ist? HTML, Usability und Barrierefreiheit 3 21.07.2005 12:43
[Erledigt] JavaScript &amp; PHP (Bilderupload) PHP-Fortgeschrittene 5 11.07.2005 17:08
Festplatte anzeigen mit JavaScript HTML, Usability und Barrierefreiheit 16 29.06.2005 10:33
Php soll Javascript beschleunigen PHP Tipps 2005 4 17.04.2005 12:56
Javascript über Javascript erstellen HTML, Usability und Barrierefreiheit 2 19.11.2004 18:02
[Erledigt] javascript funktioniert nicht innerhalb von div-tag HTML, Usability und Barrierefreiheit 5 27.10.2004 13:36

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
javascript callback, callback javascript, jquery callback funktioniert nicht, ajax callback funktioniert nicht, $.get(admin.formbuilder.baseurl \'?action=element, jquery reagiert nicht auf mit load() eingefügte inhalte, $( \#form_tabs\ ), jquery dom element erzeugen javascript geht nicht, getjson firebug callback null, tinymce ajax jquery, in/share callback geht nicht, jscript callback, php mit ajax aufgerufen javascript funktioniert nicht, callback funktion nicht mehr verfügbar jquery, jquery class click funktioniert im nachhinein nicht, callback reagiert nicht, nach ajax refresh geht jquery click nicht, callback click funktioniert nicht, php ajax callback geht nicht, nach ajax refresh funktionieren jquery funktionen nicht mehr

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:59 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum