2013-02-20 41 views
22

Tôi có một chức năng mà trên sự kiện thay đổi chạy các hành động bài.Jquery thực thi sự kiện onchange khi tải về

$("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); 
    }); 
}); 

Tôi muốn thực hiện sự kiện tải trọng này. Có thể không? Có cách nào tốt để thực hiện việc này không?

+0

Bạn có nghĩa là kích hoạt các chức năng trên tải? bạn đã thử: $ ("select # marca"). change(); – cernunnos

Trả lời

42

Chỉ cần đặt nó trong một hàm, sau đó gọi nó trên tài liệu sẵn sàng quá, như vậy:

$(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); 
    }); 
} 

Hoặc chỉ cần gọi change khi tải trang?

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

Tôi đã thử $ (cửa sổ) .load (function() { $ (function() { $ ("select # marca"). Change(); }); nhưng sự kiện không chạy .. –

+1

@PaoloRossi ' $ (function() 'sẽ ** đã thực hiện trên tải trang ** không bọc nó bên trong' $ (window) .load' và chắc chắn rằng bạn đã đăng ký sự kiện 'change' trước khi cố gắng kích hoạt' .change' – mattytommo

+0

Hoàn hảo! Cảm ơn bạn rất nhiều! –

14

Nếu bạn thêm .change() đến hết nó sẽ được gọi ngay lập tức sau khi bị ràng buộ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 
}); 

Hoặc thay đổi callback để một chức năng thực tế và gọi đó là:

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

cách Thực sự đơn giản nó chỉ chuỗi sự kiện khác .change() để kết thúc về biến đổi chức năng của bạn như thế này:

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

Một cách khác để làm

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

Để gọi onload, bạn có thể thử jQuery:

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

Viết chức năng onchange của bạn như thế này, vì vậy đây sẽ được gọi khi onchange xảy ra,

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); 
}); 
Các vấn đề liên quan