Ik loop al 2 dagen vast door waarschijnlijk iets heel kleins, maar door de zoektochten weet ik niet meer waar ik het moet zoeken.

Ik gebruik de jquery Dialog functie voor het openen van een popup waarin een formulier wordt geladen. Dit ziet er als volgt uit:

bedrijvenlogin.php

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>jQuery UI Dialog - Modal form</title>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
  <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
 
</head>
<body> 
<?php
echo "<a href='#' class='showpopup' data-id='11' data-cartid='22'>BEWERKEN</a>";


//dialog popup new order:
echo "<div id='dialog' class='dialog'>";
 echo "<div id='message'></div>";
echo "</div>";	 
?> 


</body>
</html>

  <script>
    $("a.showpopup").on("click", function(e) {
        e.preventDefault;
        $.ajax({
            url: 'edit-bedrijf.php',
            type: 'get',
            data: {id: $(this).data('id')},
            dataType: 'html'
        })
        .done(function(d) {
            $("#message").html(d);
            $("#dialog").dialog({
			 height: 600,
             width: 750,
			 modal: true,
			 close: function(event, ui) { $('#wrap').show(); },
             title: 'Nieuwe vermelding keuren'								
			});
        })
        .fail(function(){
            alert('Oops');
        }); // let op method chaining!!
        
        return false;
    });
	
   jQuery('body')
    .bind(
     'click',
      function(e){
       if(
        jQuery('#dialog').dialog('isOpen')
        && !jQuery(e.target).is('.ui-dialog, a')
        && !jQuery(e.target).closest('.ui-dialog').length
       ){
        jQuery('#dialog').dialog('close');
       }
      }
     );		
  </script> 



Als ik dit script/file gewoon direct aanroep via de adresbalk dan werkt de popup gebeuren wel. Maar dan wordt de eigenlijke website er dus niet omheen geladen. Wanneer ik op de pagina binnen de website kom waar dit script staat werkt de popup functie niet.

Ik krijg dan de volgende foutmelding:
Oops... voorkom dat deze pagina extra dialoogvensters weergeeft

Ik kom hier echt niet meer uit. Wie heeft hier een verklaring voor...?
Zet je javascript eens tussen jquery's ready functie. Misschien dat dat helpt


<script>
$( document ).ready(function() {
  // Hier de rest van je javascript
});
</script>
Heb je code lokaal getest, volgens mij word 'edit-bedrijf.php' niet gevonden.
En verder moet je script of onder in de body of in de head met:
$( document ).ready(function() (zie bij Frank)
Onderin de body, maar niet na de body (of in de head), en binnen een .ready() blok, dus zoiets:

... je pagina hiero ...
<script type="text/javascript">
$().ready(function() {
    // je inline JavaScript code hiero...
})
</script>
</body>
</html>
Als kleine toevoeging nog het volgende. jQuery.bind wordt ontmoedigd. In plaats daarvan raad jQuery je aan om jQuery.on te gebruiken.

Zie documentatie over jQuery.bind: http://api.jquery.com/bind/

Reageren