[MOOTOOLS] script extern aan roepen!

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Joey Drieling

Joey Drieling

20/04/2009 20:46:00
Quote Anchor link
Hallo,

Ik heb een mootools slider om het volume mee te bediene.
Dat werk nu allemaal wel goed maar ik wil mijn slider aanpassen met een stuk script buiten de mootools script.

Maar weet niet of het kan en hoe heb uuren lang gegoogld.

Zie hier mijn mootools script:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
window.addEvent('domready', function(){ // Mootools volume slider.

    var el = $('slider-track');
    
    var SliderObject = new Slider(el, el.getElement('.knob'), {
        steps: 100,
        range: [0],
        onChange: function(value){
            Volume(value);
        }
    }).set(Start_volume);
    
});


Met:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$('button').addEvent('click', function(){ SliderObject.set(0)});

Kan ik met een button de volume wel op 0 krijgen, maar nou moet een anderre functie dit aan roepen.

M.V.G. Joey
Gewijzigd op 01/01/1970 01:00:00 door Joey Drieling
 
PHP hulp

PHP hulp

23/04/2024 17:30:42
 
Storeman storeman

storeman storeman

20/04/2009 21:28:00
Quote Anchor link
Waarschijnlijk wordt het sliderobject opgeslagen in het element. Dit zou je kunnen napluizen in de code of gewoon proberen.

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
$('slider-track').retrieve('slider').set(0);

// Of je kunt het zo oplossen:
window.addEvent('domready', function(){ // Mootools volume slider.

    var el = $('slider-track');
    
    var SliderObject = new Slider(el, el.getElement('.knob'), {
        steps: 100,
        range: [0],
        onChange: function(value){
            Volume(value);
        }
    }).set(Start_volume);
    
    el.store('slider', SliderObject);
    // En dan doe je hetzelfde als hierboven
});
 
Joey Drieling

Joey Drieling

20/04/2009 21:45:00
Quote Anchor link
EDIT: opgelost.

Heb de mootool in normale javascript functie gezet, kan hem nu makkeliker aan roepen zie code hier onder.
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
function set_volume(volume){ // Mootools volume slider.
window.addEvent('domready', function(){

    var el = $('slider-track');
    
    var SliderObject = new Slider(el, el.getElement('.knob'), {
        steps: 100,
        range: [0],
        onChange: function(value){
            Volume(value);
        }
    }).set(volume);
    
});
}
Gewijzigd op 01/01/1970 01:00:00 door Joey Drieling
 
Joey Drieling

Joey Drieling

20/04/2009 22:39:00
Quote Anchor link
Sorry dubble post ;p
Gewijzigd op 01/01/1970 01:00:00 door Joey Drieling
 
Storeman storeman

storeman storeman

21/04/2009 15:19:00
Quote Anchor link
Blegh, dat is een hele rare oplossing. Je gaat nooit een domready event in een functie zetten zonder hele goede reden! Dat het werkt zal wel, maar dit lijkt me absoluut niet de bedoeling. Volgens mij wordt op deze manier het slideropbject opnieuw geinitialiseerd.

Heb jij mijn methode al geprobeerd? Dat is een juiste methode, als die niet werkt, meldt dat dan :)
 
Joey Drieling

Joey Drieling

21/04/2009 18:31:00
Quote Anchor link
@ Storemn

Ja ik weet is ook niet de goedemanier.
Maar sorry jou manier werkte niet, geeft alleen steeds: [object].

En zo kreeg ik het wel snel werkend.

Via google kan ik ook niet echt vinden over mootools aanroepen met javascript buiten het window.addEvent('domready' geval.

Ik denk dat het ook niet echt mogelijk is =(
Gewijzigd op 01/01/1970 01:00:00 door Joey Drieling
 
Joey Drieling

Joey Drieling

21/04/2009 22:54:00
Quote Anchor link
Niemand anders een idee!
 
Jelmer -

Jelmer -

21/04/2009 23:06:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
window.addEvent('domready', function(){ // Mootools volume slider.

    var el = $('slider-track');
    
    window.SliderObject = new Slider(el, el.getElement('.knob'), {
        steps: 100,
        range: [0],
        onChange: function(value){
            Volume(value);
        }
    }).set(Start_volume);
});


window is zeg maar het root-object binnen javascript (in een browser). $ kan je ook schrijven als window.$. Dus door je SliderObject aan window te hangen, kan je hem overal in de pagina gebruiken, en zou het scriptje dat je eerder had om hem op 0 te zetten ook moeten werken.
 
Joey Drieling

Joey Drieling

21/04/2009 23:15:00
Quote Anchor link
@ jelmer kan je effe een voledig voorbeeldje geeven a.u.b.

want als je dit bedoelt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
window.SliderObject.Set(0);

werkt niet

Voorbeeld zo als ik het zou wilen gebruiken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<script language="javascript">
function status(){
  if ( controleerietsblabla ) {
    naarmootoolsweetniethoe.Set(0); //Zet volume slider op 0.
  }
}
</script>
Gewijzigd op 01/01/1970 01:00:00 door Joey Drieling
 
Jelmer -

Jelmer -

21/04/2009 23:57:00
Quote Anchor link
set() is zonder hoofdletter :)

Voor de rest heb je hem zelf al. window.sliderObject.set(0); zou nadat de pagina geladen (nadat de domready callback is aangeroepen) is moeten werken.
 
Joey Drieling

Joey Drieling

22/04/2009 07:09:00
Quote Anchor link
@ jelmer

Ja bedankt het werkt nu, en stom van me om set() met hoofdletter te schijven.

Heb nou ook de slider weer uit de javascript functie gehaald dus dat staat ook gewooon weer netjes.
 



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.