2012-11-19 57 views
5

Các trang web là ở đây:Tại sao tôi không thể kích hoạt sự kiện `thay đổi` của radio bằng jquery?

http://cistrome.org/cps/seqconfig?did=2693

Và js mã ban đầu là dưới đây (cái này hoạt động tốt):

$(document).ready(function(){ 
    $(".open_gene").on('change', function(event) { 
     $('#Gene_field').show(); 
    }); 

    $(".close_gene").on("change", function(event){ 
     $("#Gene_field").hide(); 
    }); 
}); 

Vì vậy, các .close_gene có trình xử lý sự kiện cho change. Nhưng khi tôi muốn kích hoạt sự kiện này bằng tay để che giấu sự #Gene_field, như thế này:

>>> $('.close_gene').trigger("change") 

Trong FireBugs, giá trị trả về là:

[input#nolimit_radio.close_gene all] 

Nhưng #Gene_field không giấu ..

Tôi đã tự hỏi rằng tại sao tôi không thể kích hoạt sự kiện change mà lẽ ra đã là bind đến function(event){ $("#Gene_field").hide();}. Có ai có ý tưởng về điều này không? Cảm ơn!

+0

Xin chào, chỉ là một thông tin thân thiện liên kết t o các trang web cá nhân được nản lòng khi chúng phá vỡ theo thời gian (vì trang này có). Xem [Nội dung nào đó trong trang web hoặc dự án của tôi không hoạt động. Tôi có thể dán liên kết vào nó không?] (Https://meta.stackoverflow.com/q/254428/1366033). Mã nội tuyến giúp rất nhiều, nhưng một bản demo có thể chạy được trong jsFiddle hoặc các đoạn mã ngăn xếp sẽ tốt hơn. Tại sao lại quan tâm 5 năm sau khi bạn đã đặt câu hỏi? Bởi vì những độc giả tương lai như tôi và 8.711 người khác vẫn tìm thấy câu hỏi này khi thực hiện tìm kiếm và SO không chỉ là một nơi để giải quyết vấn đề của riêng bạn, mà còn để xây dựng cơ thể tri thức – KyleMit

Trả lời

8

Hãy thử điều này:

$(".close_gene").click(); 

của nó làm việc tốt cho tôi trong Firebug Bảng điều khiển ... :)

Cập nhật:

này cũng nên làm việc, nhưng sẽ không thay đổi trạng thái của nút radio

$(document).ready(function(){ 
    $(document).delegate(".open_gene",'change', function(event) { 
    $('#Gene_field').show(); 
    }); 

    $(document).delegate(".close_gene", "change", function(event){ 
    $("#Gene_field").hide(); 
    }); 
}); 

$('.close_gene').trigger("change"); 
+1

Cảm ơn! Nhưng có vẻ như một sự kiện 'change' nên được sử dụng thay vì sự kiện' click', đúng không? Tại sao '$ (". Close_gene "). Change();' hoặc '$ (". Close_gene "). Trigger (" thay đổi ")' sẽ không hoạt động? –

+0

@Firegun - Mệt mỏi vì chơi với Firebug ... :( – rajukoyilandy

+0

@Firegun - xem cập nhật của tôi – rajukoyilandy

Các vấn đề liên quan