为什么我无法使用jquery触发单选按钮的“change”事件?

6
页面在此:

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

以下是原始js代码(该代码工作正常):
$(document).ready(function(){
    $(".open_gene").on('change', function(event) {
        $('#Gene_field').show();
    });

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

因此,.close_gene 具有 change 的事件处理程序。但是当我想手动触发此事件以隐藏 #Gene_field 时,可以这样做:
>>> $('.close_gene').trigger("change")

在FireBugs中,返回的值是:
[input#nolimit_radio.close_gene all]

但是#Gene_field字段并没有被隐藏...

我想知道为什么我无法触发已经绑定到function(event){ $("#Gene_field").hide();}change事件。有人有这方面的想法吗?谢谢!


你好,友情提醒,个人网站链接不被推荐,因为它们会随着时间的推移而失效(就像这个链接一样)。请参见我的网站或项目有问题,我可以粘贴链接吗?。内联代码已经很有帮助了,但在jsFiddle或堆栈片段中运行演示将更好。为什么要关注您提问5年后的问题呢?因为像我和其他8,711名读者在搜索时仍会发现这个问题,SO不仅是解决问题的地方,还是构建知识库的地方。 - KyleMit
1个回答

11

试试这个:

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

在 Firebug 控制台中对我来说正常运行...

更新:

这也应该可以工作,但不会更改单选按钮的状态。

$(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
谢谢!它有效。但是看起来应该使用change事件而不是click事件,对吗?为什么$(".close_gene").change();$(".close_gene").trigger("change")不起作用呢? - Hanfei Sun
@Firegun - 厌倦了和 Firebug 玩耍... :( - rajukoyilandy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接