2009-06-20 7 views
0

Hier ist mein Code:Warum wird eine Variable in meinem Event-Handler nicht zurückgesetzt?

$(document).ready(function() { 
    var default_var = 2; 
    var show_var = default_var; 
    var total_var = 8; 
    var increment_var = 2; 


    var start_var = show_var+1; 
    var end_var = show_var+increment_var; 

    $("a[rel=more]").live("click", function(){ 

     $("#timeshare-listings li:last").after("<li class='ajax'></li>"); 
     $("#timeshare-listings li.ajax").load("http://www.goodbuytimeshare.com/listings/ajax/"+start_var+"/"+end_var+"/"); 
     $("#timeshare-listings li.ajax").removeClass("ajax"); 

     var show_var = end_var+1; 

     return false; 
    }); 
}); 

Das erste Mal, wenn ich auf den Button klicken, um es genau das tut, was ich will. Leider ändert show_var aus irgendeinem Grund seinen Wert nie. Warum nicht? Was muss ich tun, damit sich etwas ändert?

Antwort

6
... 
var show_var = default_var; 
... 

$("a[rel=more]").live("click", function(){ 
    ... 
    // declares and initializes entirely new variable named show_var 
    // that will never be used again... 
    var show_var = end_var+1; 
    ... 
}); 

Sie erneut erklärt show_var in der Prozedur für das Live-Ereignis click. Tun Sie das nicht - verweisen Sie nur auf den im äußeren Bereich, und es sollte tun, was Sie wollen ...

... 
var show_var = default_var; 
... 
$("a[rel=more]").live("click", function(){ 
    ... 
    show_var = end_var+1; // update value in outer scope 
    ... 
}); 
Verwandte Themen