Dynamisch geladen jquery ui dialog openen
Ik probeer een jquery ui dialog te openen welke door ajax word geladen:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$('#dialog-button').live('click',function(){
alert('dit gaat wel goed');
$('#dialog').dialog('open');//dit niet
});
//en dan wordt dit door ajax geladen
<div id="dialog">
<form>
<input type="text" value="hier een waarde">
</form>
</div>
alert('dit gaat wel goed');
$('#dialog').dialog('open');//dit niet
});
//en dan wordt dit door ajax geladen
<div id="dialog">
<form>
<input type="text" value="hier een waarde">
</form>
</div>
Maar ik kom er even niet uit hoe ik de dialog kan laten openen..?
Weet iemand hoe dit moet?
Alvast bedankt!
Het probleem zit niet alleen in de dialog maar ook als je bijvoorbeeld css van een element wilt veranderen. Er is waarschijnlijk wel een oplossing voor, maar ik heb hem nog niet kunnen vinden....
Als je bijvoorbeeld en button door ajax genereert heb je .live of .on nodig. datzelfde heb ik nodig voor het openen van de dialog. En stel dat je bijvoorbeeld wilt doen $('#id').html(); Dan werkt dat ook niet, ik vraag me ook af hoe je dat doet. hier helpt .on en .live je volgens mij niet.
Ik liep hier ook tegenaan een tijdje geleden en toen kwam ik met .on() aan en dat werkte gewoon prima. Welke versie van jQuery gebruik je?
Dan werkt de .on toch alleen voor het click event en niet voor de dialog. Ik hoop eigenlijk dat ik het mis heb.
in jouw geval dus
Toevoeging op 11/03/2013 15:18:17:
wat die on() doet is gewoon een event triggeren door te kijken wat de eerste parameter is. Click in dit geval. Dus als je dan op de button met het id 'dialog-button' klikt hoort hij het dialog te openen.
Code (php)
1
2
3
4
5
6
2
3
4
5
6
$(document).on("click",'#dialog-button',function(){
alert('dit werkt');
$('#dialog').dialog('open');//dit nog niet
})
alert('dit werkt');
$('#dialog').dialog('open');//dit nog niet
})
Als je .on of live weg laat werkt de button ook niet, dus daarom denk ik dat de dialog ook niet opent. Ik denk dat hier ook iets mee moet gebeuren.
Je hebt de jquery UI wel aan de praat? Word die wel ingeladen?
Als ik de dialog gewoon in de html zet zonder ajax dan werkt het wel(ik kan dan niet .on gebruiken dan werkt het ook niet). Als ik de dialog open zoals hierboven met de html door ajax dan werkt het niet.
Kan ik morgen anders met teamviewer meekijken? Ik heb vanavond niet veel tijd meer en heb hier de afgelopen tijd veel mee te maken gehad. Het zou het een stuk makkelijker maken.
1 - bij de click handler de dialog direct aanmaken, $('#dialog').dialog(hier dan de dialog maken);
2 - een eigen functie aanmaken ipv de standaard $(function(){}); waar de dialog in staat, dan werkt het op een een of andere manier wel.
In elk geval bedankt voor de hulp Albert!
Dus hij doet het nu?