Probleme mir JQuery

Hallo,
ich habe ein Problem mit JQuery (Dialog funktion), dass ich nun schon seit einigen stunden nicht gelöst bekomme.

Mein Problem sieht so aus:

Ich will, dass wenn man ein Fenster öffnet, er ein von mir definierte Javascript function ausführt.

ICh habe es schon mit „open“ probiert doch irgendwie funktioniert dass nicht.
Immer, wenn ich die Seite neu Lade, führter die Funktion
sofort aus.

Die anleitung giebts hier: jQuery UI - Dialog Demos & Documentation
„open“ ist zu finden unter : Evenst → open

Ich glaube, dass die lösung ganz einfach ist, ich aber nicht darauf komme.

MfG

Tobi

P.S Google hab ich schon benutzt.

Da du noch keine Antwort von jemandem hast, der die Beschreibung zu verstehen scheint:

Könntest du ein Beispiel posten, was du bislang hast?

Das hab ich:
Ich hab einen Link, auf den man klickt, wenn man das fenster öffnen will.
wenn das fenster geöffnet wird, soll eine von mir definierte javascript function ausführen.
Wenn man das Fenster über das x schliesst, soll er wieder eine Javascript-function ausführen.

Das suche ich:
Eine Möglichkeit diese Funktionen beim öffnen und schließen des fensters aufzurufen.
Bild im Anhang

Hier das Bild:
[ATTACH]1545.vB[/ATTACH]

Hoffe diese beschreibung ist klarer :smiley:

Will mir noch jemand antworten?
Ich warte jetzt schon lange auf eine Antwort.

Die Antwort steht doch in der Doku.

Wo denn?
Dort steht nur „open“ was irgendwie nicht funktioniert, und „beforeclose“ und „close“ was auch nicht funktioniert.
Mir ist aber auch aufgefallen, dass es auch wen ich haskfshaklfsh vor dem : eingebe, dass er die Funktion trotzdem sofort ausführt.

Ich hab es gerade nocheinmal ausprobiert und … ein Wunder!
Es funktioniert.
Doch jetzt tauch leider immer wieder folgender Fehler auf:

Fehler: uncaught exception: Syntax error, unrecognized expression: #[object HTMLDivElement]

EDIT:
Gerade habe ich etwas bemerkt, er führt sie immer noch sofort aus.
Der obrige fehler ist immer noch da.

Les doch mal deine Beiträge und versuch dir vorzustellen du bist wir. Ich hab keinen blassen Schimmer was du machst und wie dein Code aussieht, trotzdem erwartest du das jemand dir helfen soll? Ohne hellseherische Fähigkeiten ist das unmöglich.

Oder um wenigstens den versuch einer Antwort zu starten: Du machst etwas falsch.

Der Code is folgendermaßen aufgebaut:
Ich habe eine index.php Die alles includet.
Diese Datei includet Folgende Dateien:

[CODE]<?php
include(‚includes.php‘);

if($_GET[‚login‘]==1){echo’‚;}
if(isLogin()==false){
echo‘
body{
background-image:url(„bilder/backgroundimage.png“);
}

‚;
echo‘
body{margin-left: auto;
margin-right: auto;

line-height:250%;width:auto;margin:1em 20%;text-align: left;
‚;
$logout=$_GET[‚logout‘];
if($logout==1) {
echo‘‚;}
echo‘‚;
echo‘

'.$spr[Username].':
'.$spr[Password].':
'; } else {

echo’PHP-OS ‚.getUsername().‘';
echo"

/*demo page css*/ div.windows{ font: 62.5% 'Trebuchet MS', sans-serif; margin: 50px;} .demoHeaders { margin-top: 2em; } #dialog_link {padding: .4em 1em .4em 20px;text-decoration: none;position: relative;} #dialog_link span.ui-icon {margin: 0 5px 0 0;position: absolute;left: .2em;top: 50%;margin-top: -8px;} ul#icons {margin: 0; padding: 0;} ul#icons li {margin: 2px; position: relative; padding: 4px 0; cursor: pointer; float: left; list-style: none;} ul#icons span.ui-icon {float: left; margin: 0 4px;} ";

echo’

';

echo’

'; include('generateWindow.php'); echo'
'; include('generateWindowFunctions.php'); include('generateDesktop.php'); echo'
searchresults
';include('generateWindowBoxen.php'); echo'
'; } [/CODE] GenerateDesktop[INDENT]Hohl alle Desktopicoons aus der Datenbank und zeigt sie an. [CODE]<?php /* Ehemalig echo'

‚;
*/
echo‘
body{
background-image:url(„system/user_backgrounds/‚.getUsername().‘.jpg“);
}

‚;
$desktopSQL=mysql_query(„SELECT * FROM desktop“);
$desktopAnzahl=mysql_num_rows($desktopSQL);
$found=0;
$searchid=0;
while($desktopAnzahl!=$found){
$searchid++;
$desktopWhileSQL=mysql_query(„SELECT * FROM desktop WHERE positionID = '“.$searchid."‘");
$desktopRow=mysql_fetch_array($desktopWhileSQL);
if($desktopRow[ID]!=‚‘){
echo’

'.$spr['desktop'.$desktopRow[namevariable]].'
'; $found++; }

}

//Eigene Desktop Icoons
$desktopSQL=mysql_query(„SELECT * FROM owndesktop“);
$desktopAnzahl=mysql_num_rows($desktopSQL);
$found=0;
$searchid=0;
while($desktopAnzahl!=$found){
$searchid++;
$desktopWhileSQL=mysql_query(„SELECT * FROM owndesktop WHERE positionID = '“.$searchid.„'“);
$desktopRow=mysql_fetch_array($desktopWhileSQL);
if($desktopRow[ID]!=‚‘){
echo’

'.$desktopRow[namevariable].'
'; $found++; }

}[/CODE][/INDENT]GenerateWindows
Holt alle fenster aus der Datenbank

[CODE]<?php
$windowsSQL=mysql_query(„SELECT * FROM windows“);
$windowsAnzahl=mysql_num_rows($windowsSQL);
$found=0;
$searchid=0;

while($windowsAnzahl!=$found){
$searchid++;
$windowsWhileSQL=mysql_query(„SELECT * FROM windows WHERE ID = '“.$searchid.„'“);
$windowsRow=mysql_fetch_array($windowsWhileSQL);
if($windowsRow[ID]!=‚‘){
echo’

'.$windowsRow[content].'
'; $found++; }

}
//Eigene Fenster
$windowsSQL=mysql_query(„SELECT * FROM ownwindows“);
$windowsAnzahl=mysql_num_rows($windowsSQL);
$found=0;
$searchid=0;

while($windowsAnzahl!=$found){
$searchid++;
$windowsWhileSQL=mysql_query(„SELECT * FROM ownwindows WHERE ID = '“.$searchid.„'“);
$windowsRow=mysql_fetch_array($windowsWhileSQL);
if($windowsRow[ID]!=‚‘){
echo’

'.$windowsRow[content].'
'; $found++; }

}

[/CODE]GenerateWindow Functions
Erstellt die Functionen zu den Fenstern

<?php
$windowsSQL=mysql_query("SELECT * FROM windows");
$windowsAnzahl=mysql_num_rows($windowsSQL);
$found=0;
$searchid=0;
echo"<script type='text/javascript'>
            $(function(){
                // Datepicker
                $('#datepicker').datepicker();";
while($windowsAnzahl!=$found){
$searchid++;
$windowsWhileSQL=mysql_query("SELECT * FROM windows WHERE ID = '".$searchid."'");
$windowsRow=mysql_fetch_array($windowsWhileSQL);
if($windowsRow[ID]!=''){
//open: openWindow(".$windowsRow[openID].",".$windowsRow[boxID].")
echo"
$('#".$windowsRow[openID]."').dialog({
                autoOpen: ".$windowsRow[autoOpen].",
                title: '".$spr['window'.$windowsRow[windowName]]."',
                width:600,
                zIndex: 1
                
                $windowsRow[sonst]";
if($windowsRow[OKButtonText]!='' OR $windowsRow[CancelButtonText]!=''){
echo', 
buttons: {';
    if($windowsRow[OKButtonText]!=''){
    echo"'".$spr[buttonOK]."': function() {
    ".$windowsRow[OKButtonFunction]."
         }";
    
    }
if($windowsRow[CancelButtonText]!=''){
    echo",'".$spr[buttonCancel]."': function() {
    ".$windowsRow[CancelButtonFunction]."
         }";
    
    }    
echo'}';    }
echo"                
                
                });";
$found++;
}

}


//Eigene Fenster
$windowsSQL=mysql_query("SELECT * FROM ownwindows");
$windowsAnzahl=mysql_num_rows($windowsSQL);
$found=0;
$searchid=0;

while($windowsAnzahl!=$found){
$searchid++;
$windowsWhileSQL=mysql_query("SELECT * FROM ownwindows WHERE ID = '".$searchid."'");
$windowsRow=mysql_fetch_array($windowsWhileSQL);
if($windowsRow[ID]!=''){
echo"
$('#own".$windowsRow[openID]."').dialog({
                autoOpen: ".$windowsRow[autoOpen].",
                title: '".$windowsRow[windowName]."',
                width:600,
                zIndex: 1,
                maxHeight: 400,
                
                $windowsRow[sonst]";
if($windowsRow[OKButtonText]!='' OR $windowsRow[CancelButtonText]!=''){
echo', 
buttons: {';
    if($windowsRow[OKButtonText]!=''){
    echo"'".$windowsRow[OKButtonText]."': function() {
    ".$windowsRow[OKButtonFunction]."
         }";
    
    }
if($windowsRow[CancelButtonText]!=''){
    echo",'".$windowsRow[CancelButtonText]."': function() {
    ".$windowsRow[CancelButtonFunction]."
         }";
    
    }    
echo'}';    }
echo"                
                
                });";
$found++;
}

}




echo"                
            
$('#editFile').dialog({
                autoOpen: false,
                title: '".$spr['windowEditFile']."',
                width:600,
                
                zIndex: 1});
                

});                        
            
        </script>";

Problem steht oben

Toll, könntest du das auch kürzen auf das worauf es ankommt?
Und warum zeigst du uns PHP Code ich dachte es wäre eine Javascript Frage.

Also der Inhalt der generatWindowFunctions.php (Gekürtzt mit eineigen PHP variablen)

Kann sein, das einie Klammern zu viel das sind, einfach überlesen
Platzhalter für von PHP gefüllte Werte #Platzhalter#

[CODE]

";

[/CODE]Folgendes Sollte er eig. ausführen, wenn das Fenster geöffnet wird doch dies macht er immer sofort am anfang und dann kommt es immer gleich diese Fehlsermeldung:

Vereinfacht: open: openWindow(#WindowID#,#BoxID#)

WindowID und BoxID werden durch PHP gefüllt (sind PHP variablen)
Orginal: open: openWindow(„.$windowsRow[openID].“,„.$windowsRow[boxID].“)

Hoffe der Code ist übersichtlicher

wie gesagt du hast keine PHP Frage, also ist dein PHP Code unrelevant, für ein JS Problem ist nur relevant was im Browser ankommt.

Ich sehe nicht wo du das auf der Doku beschriebene eingesetzt hast. Ist der Rückgabewert von openWindow() eine Funktionsreferenz?

Oh sorry hab ich vergessen einzusetzen:

[CODE]$(‚##Hier wird der Fenstertitel eingesetzt#‘).dialog({
autoOpen: false,
title: #Hier wird Titel eingesetzt#,
width:600,
zIndex: 1,
open: openWindow(#WindowID#,#BoxID#)

#Buttons werden erstellt#
,
buttons: {';

‚OK‘: function() {
#Hier wird die Buttonunktion eingesetzt#
}";

}


}    

} }

            });";

Das neue ist unterstrichen
[/CODE]

So rufst du die Funktion openWindow() auf und übergibst den Rückgabewert dem open Handler. Das ist nicht das was in der Doku steht. Es sei denn die Funktion openWindow() gibt eine Funktionsreferenz als Rückgabwert zurück. Schau dir doch mal das Beispiel in der Doku an

Ich fasse die Anleitung folgendermaßen auf:

open: function(event, ui) { … }

open giebt an, dass er folgendes ausführen soll, wenn das fenster geöffnet wird
function, ist die function die man selbst definieren kann.
(event, ui) sind die Parameter

Nein, das faßt du falsch auf.

function ist ein Schlüsselwort, das bedeutet, dass du ein closure definieren kannst, genau wie du es auch in deinem Code schon machst, bei dem OK Button.

Du kannst aber auch die Referenz auf eine Funktion verwenden, z.b. so open: openWindow ohne Klammer.

EDIT: oder deine Funktion gibt eine Funktionsreferenz zurück.

Das bedeutet ich muss meine Funktion in die Klammern schreiben?
Aber was muss ich dann in ui und event eintragen?

Keine Ahnung das scheinen ja nur Platzhalter zu sein, aber du kannst in der function deine Funktion normal mit Parameter aufrufen.

open: function(e, ui) {
openWindow(#WindowID#,#BoxID#);
}

Wobei ich nicht weiß ob du hier wirklich die ID brauchst, die steckt wahrschienlich schon in dem Parameter ui der der Callback funktion übergeben wird

Den WindowID benötigt die Funktion um einem Fenster eine Box zuordnen zu können.
Probiere es gleich mal aus.

SUPER! Es funktioniert!

Danke jetzt kann ich endlich weitermachen
:D:D:D:D:D:D:D:D:D:D