ColorBox onClick voert JS Function uit

Ik gebruik de inline-functionaliteit van ColorBox en ik heb een knop gemaakt die ik heb ingesteld om het venster te sluiten wanneer erop wordt geklikt:

$('.closebutton').live('click', function(){
        $.fn.colorbox.close();
    });

Ik heb een andere functie die ik wil uitvoeren wanneer op de knop wordt geklikt, dus ik heb het volgende gebruikt:

<button class="closebutton" onclick="myFunction();">Close</button>

Probleem is dat de myFunction niet hierboven werkt.

Om het even welke ideeën alstublieft?

BIJWERKEN:

Hier is waar de code is:

<script type="text/javascript">
jQuery(document).ready(function() {
    $(".inline").colorbox({inline:true, width:"50%"}); //for colorbox inline
    $('#cboxClose').remove(); //remove popup window close button

    $('.closebutton').live('click', function(){
        $.fn.colorbox.close();
        myFunction();
    });

Toevoegen van myFunction (); voor of na $. Fn.colorbox.close (); werkt niet

myFunction code: (Dit gaat achter de code hierboven op de pagina)

<script type="text/javascript">
function myFunction() {
    $("#ajax-form").submit(function(){
        $.post("update.php",
        $("#ajax-form").serialize(),
            function(data){
                $('#jqm').attr('src', 
                $('#jqm').attr('src'));
            }
        );
        return false;
    });
}
</script>

UPDATE 2:

Ik zal proberen het beter uit te leggen: ik heb een formulier en een invoer op de hoofdpagina die werkt te vinden, dus wanneer je wat tekst toevoegt aan het invoervak ​​en vervolgens het formulier indient, wordt de waarde van de invoer ingediend. Nu, wanneer ik diezelfde invoer in het inline gebied van colorBox zet, zodat het in het pop-upvenster verschijnt, wordt de waarde niet ingediend. Ik heb geprobeerd JS-fouten op de Firebag te pakken, maar ik kan daar niets zien. Ik hoop dat dit helpt.

0
Zie update hierboven
toegevoegd de auteur Satch3000, de bron
Waar is mijn functie() gedefinieerd? Zou je die code ook kunnen toevoegen?
toegevoegd de auteur Joey, de bron

4 antwoord

Waarom niet gewoon myFunction() toevoegen vóór $. Fn.colorbox.close (); ? Op die manier weet je zeker waar de dingen in worden verwerkt.

1
toegevoegd
Ik zei VOORDAT met een reden.
toegevoegd de auteur Niet the Dark Absol, de bron
Eventuele foutmeldingen? Debuggen?
toegevoegd de auteur Niet the Dark Absol, de bron
Heeft u een link naar het werkt niet? Of kunt u de code voor myFunction() opgeven?
toegevoegd de auteur Niet the Dark Absol, de bron
werkt niet ... zie update
toegevoegd de auteur Satch3000, de bron
Ik heb het eerder ook geprobeerd, maar werkte nog steeds niet.
toegevoegd de auteur Satch3000, de bron
Helemaal geen fouten. Gewoon niet werken
toegevoegd de auteur Satch3000, de bron

In plaats van inline JavaScript te gebruiken, kunt u zoiets als dit doen:

$('.closebutton').live('click', function(){
    $.fn.colorbox.close();
    myFunction();
});
1
toegevoegd
werkt niet ... zie update
toegevoegd de auteur Satch3000, de bron
De code daar voert niet goed uit. Wanneer de functie wordt aangeroepen vanuit de inline popup, wordt de myFunction-code niet uitgevoerd.
toegevoegd de auteur Satch3000, de bron
Zou je wat specifieker kunnen zijn? Kom je in myFunction en de code daar voert niet goed uit of wordt de functie niet eens aangeroepen?
toegevoegd de auteur Leo, de bron

Ik geloof dat het probleem is dat myFunction() (het onClick-kenmerk) wordt overschreven door jQuery. Als u wilt dat uw functie wordt uitgevoerd als er op een .closebutton wordt geklikt, gebruikt u gewoon:

$('.closebutton').live('click', function(){
        $.fn.colorbox.close();
        myFunction();
});

Als het alleen voor die knop is, probeer dan een ID aan die knop toe te voegen en:

$('.closebutton').live('click', function(){
   $.fn.colorbox.close();
   if($(this).attr('id') == 'exampleID')){
      myFunction();
   }
});
0
toegevoegd
werkt niet ... zie update
toegevoegd de auteur Satch3000, de bron

Oké, na het lezen van je update # 2 begrijp ik dat je probleem eigenlijk niet is dat de myFunction-code niet juist wordt uitgevoerd.

Het probleem is dat je je invoer hebt verplaatst in de colorbox, dus de waarde ervan verzendt niet met het formulier, wat normaal is omdat de invoer nu buiten het formulier is.

U kunt of gewoon uw hele formulier in de Colorbox verplaatsen of JavaScript gebruiken om de waarde van de invoer die u buiten uw formulier bewaart te kopiëren in een verborgen invoer.

0
toegevoegd