Javascript callback functie werkt alleen in chrome

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Tim S

Tim S

06/04/2013 17:19:30
Quote Anchor link
Hallo,

Omdat het maken/toevoegen van een module in mijn cms veel code nodig had heb ik het volgende gemaakt in javascript:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
function mDialog(dialog){
    
    this.autoOpen = true;    
    this.height = 400;
    this.width = 600;
    this.modal = true;
    this.proceedHandler = null;
    this.dialog = dialog;
    this.proceedButton = 'Opslaan';
    this.abortButton = 'Annuleren';
    
}

mDialog.prototype.setProceedButton = function(name){
    
    this.proceedButton = name;    
    
}

mDialog.prototype.setAbortButton = function(name){
    
    this.abortButton = name;    
    
}

mDialog.prototype.setProceedHandler = function(handler){
    
    this.proceedHandler = handler;
    
}

mDialog.prototype.display = function(){
    
    //window.Dialog = this;
    var mDialog = this;
    var cButtons = {};
    
    cButtons[this.proceedButton] = function(){
        
        //var Dialog = window.Dialog;
        var Dialog = mDialog;
        alert('dit werkt');        
        setTimeout(function(){
                
            callback(Dialog.proceedHandler());
            
        },5);
            
        $(this).dialog('close');
        
    }
    cButtons[this.abortButton] = function(){
        
        $(this).dialog('close');
        
    }
    
    $(this.dialog).dialog({
        
        autoOpen : this.autoOpen,
        height     : this.height,
        width     : this.width,
        modal     : this.modal,
        buttons  : cButtons
            
    })
}


In gebruik doe ik dan dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$(document).on('click','#een-button',function(){
    
    var dialog = new mDialog('#een-dialog');
    
    dialog.setProceedHandler(function(){
    
        alert('Dit krijg ik alleen te zien in chrome');
        
                var poster = new mPoster;
        poster.setForm('#een-form');
        poster.setSuccessMessage('Een bericht');
        poster.post();    
    
    })

    dialog.display();
    
});


Nu is het probeem dat de callback functie in de mDialog.prototype.display alleen werkt in chrome en niet in ie safari en firefox. Heeft iemand enig idee waar dat aan kan liggen??

Alvast bedankt.

Toevoeging op 06/04/2013 19:17:31:

Het is opgelost, dit: callback(Dialog.proceedHandler());
moest zijn callback(Dialog.proceedHandler);

Ik had het al getest maar ben denk de cache vergeten te legen. Oevergrens toch vreemd dat het in chrome wel werkte.
 
Er zijn nog geen reacties op dit bericht.



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.