2010-05-31 8 views
2

J'essaye de charger deux boîtes de dialogue modales avec Jquery. Les deux chargent des pages séparées en utilisant ajax. Le seul problème est que seul l'un d'entre eux fonctionne. Je pense que je dois simplifier mon code mais je ne sais pas comment.Simplifier le code Jquery AIDE!

<script type="text/javascript"> 
$(document).ready(function(){ 
var dialogOpts = { 
     modal: true, 
     bgiframe: true, 
     autoOpen: false, 
     height: 400, 
     width: 550, 
     draggable: true, 
     resizeable: true, 
     title: "Your campaign rates", 
    }; 
$("#ratesbox").dialog(dialogOpts); //end dialog 

    $('#ratesbutton').click(
     function() { 
     $("#ratesbox").load("rate_sheet/index.php", [], function(){ 
       $("#ratesbox").dialog("open"); 
      } 
     ); 
     return false; 
     } 
    ); 
}); 
</script> 


<script type="text/javascript"> 
$(document).ready(function(){ 
var dialogOptsPass = { 
     modal: true, 
     bgiframe: true, 
     autoOpen: false, 
     height: 400, 
     width: 550, 
     draggable: true, 
     resizeable: true, 
     title: "Change your pasword", 
    }; 
$("#passwordbox").dialog(dialogOptsPass); //end dialog 

    $('#passwordbutton').click(
     function() { 
     $("#passwordbox").load("change_password/index.php", [], function(){ 
       $("#passwordbox").dialog("open"); 
      } 
     ); 
     return false; 
     } 
    ); 
}); 
</script> 

Est-il possible de combiner les deux scripts ????

+0

avez-vous déjà essayé? – vladv

+0

Je suis si curieux qui upvotes la question sous cette forme – jAndy

+0

@jAndy: Allons-nous appeler cela étranglement de vote? –

Répondre

3

Vous pouvez simplifier votre script un peu, comme ceci:

$(function(){ 
    var dialogOpts = { 
     modal: true, 
     bgiframe: true, 
     autoOpen: false, 
     height: 400, 
     width: 550, 
     draggable: true, 
     resizeable: true, 
     title: "Your campaign rates" 
    }; 
    $("#ratesbox, #passwordbox").dialog(dialogOpts); 
    $("#passwordbox").dialog("option", "title", "Change your pasword"); 
    //or... 
    //$("#ratesbox").dialog(dialogOpts); 
    //$("#passwordbox").dialog($.extend(dialogOpts, { title: "Change your pasword" })); 

    $('#ratesbutton').click(function() { 
    $("#ratesbox").load("rate_sheet/index.php", function(){ 
     $("#ratesbox").dialog("open"); 
    }); 
    return false; 
    }); 
    $('#passwordbutton').click(function() { 
    $("#passwordbox").load("change_password/index.php", function(){ 
     $("#passwordbox").dialog("open"); 
    }); 
    return false; 
    }); 
}); 

... mais je ne vois pas de problème particulier avec votre code (sauf un qui devrait causer des problèmes pour les deux ) , c'est probablement lié à votre balisage pour savoir pourquoi on ne travaille pas. Assurez-vous également de supprimer les virgules flottantes dans les déclarations d'objet, vous avez actuellement title: "Your campaign rates", ... ne pas avoir une virgule pendante là-bas, IE en particulier va souffler un joint, manger votre chat et voler votre voiture.

+1

+1 pour le chat mangeant, vol de voiture IE – jAndy

+0

+1 IE m'a fait ça aussi! Sauf qu'il n'a pas de licence, alors quand il a été arrêté, j'ai eu le ticket! #% @ $$ # $! – Mottie