2013-02-20 11 views
22

Mam funkcję, która po zmianie zdarzenia uruchom akcje post.JQuery uruchom onchange wymień na onload

$("select#marca").change(function(){ 
    var marca = $("select#marca option:selected").attr('value'); 
    $("select#modello").html(attendere); 
$.post("select.php", {id_marca:marca}, function(data){ 
     $("select#modello").html(data); 
    }); 
}); 

Chciałbym wykonać tę funkcję zdarzenia obciążenia. Czy to możliwe? Czy jest to dobry sposób na zrobienie tego?

+0

To znaczy, wywołać funkcję na obciążenia? spróbuj: $ ("wybierz # marca"). change(); – cernunnos

Odpowiedz

42

Wystarczy umieścić go w funkcji, a następnie wywołaj ją na gotowym dokumencie, na przykład:

$(function() { 
    yourFunction(); //this calls it on load 
    $("select#marca").change(yourFunction); 
}); 

function yourFunction() { 
    var marca = $("select#marca option:selected").attr('value'); 
    $("select#modello").html(attendere); 
    $.post("select.php", {id_marca:marca}, function(data){ 
     $("select#modello").html(data); 
    }); 
} 

Lub po prostu wywołać change po załadowaniu strony?

$(function() { 
    $("select#marca").change(); 
}); 
+0

Próbowałem $ (window) .load (function() { $ (function() { $ ("wybierz # marca"). Change(); }), ale zdarzenie nie zostanie uruchomione. –

+1

@PaoloRossi ' $ (function() 'will ** już wykonuje na ładowaniu strony ** nie owija go wewnątrz' $ (window) .load' i upewnij się, że zarejestrowałeś zdarzenie 'change' przed próbą uruchomienia' .change' – mattytommo

+0

Doskonale! Dziękuję bardzo! –

14

Jeśli dodać .change() do końca będzie zwanego razu po wiążąc:

$(function() { 
    $("select#marca").change(function(){ 
     var marca = $("select#marca option:selected").attr('value'); 
     $("select#modello").html(attendere); 
    $.post("select.php", {id_marca:marca}, function(data){ 
      $("select#modello").html(data); 
     }); 
    }).change(); // Add .change() here 
}); 

Albo zmienić oddzwanianie do rzeczywistej funkcji i nazywają to:

function marcaChange(){ 
    var marca = $("select#marca option:selected").attr('value'); 
    $("select#modello").html(attendere); 
$.post("select.php", {id_marca:marca}, function(data){ 
     $("select#modello").html(data); 
    }); 
} 

$(function() { 
    $("select#marca").change(marcaChange); 
    marcaChange(); 
}); 
14

bardzo prosty sposób to po prostu łańcuch inny .change() zdarzenie do końca swojej sprawie zmian funkcji takich jak to:

$("#yourElement").change(function(){ 
    // your code here 
}).change(); // automatically execute the on change function you just wrote 
1

Drugi sposób to zrobić

$("select#marca").val('your_value').trigger('change'); 
1

Aby zadzwonić pod numer onload, możesz wypróbować jQuery:

$(document).ready(function(){ 
onchange();// onload it will call the function 
    }); 

Napisz swoją funkcję onchange takiego, więc ta zostanie wywołana, gdy wystąpi onchange,

function onchange(){ 
    var marca = $("select#marca option:selected").attr('value'); 
    $("select#modello").html(attendere); 
    $.post("select.php", {id_marca:marca}, function(data){ 
    $("select#modello").html(data); 
});