【问题标题】:JQuery: trigger() not calling related targetJQuery:触发器()不调用相关目标
【发布时间】:2015-08-15 19:40:55
【问题描述】:

在加载所有页面内容后,我使用trigger() 来检查单选按钮,因为单选按钮的值来自第三方 api。

我默认选中了一个选项。所以我使用trigger() 事件来检查单选按钮。单选按钮也有它的点击事件。

在我的代码中,只有单选按钮被选中,但事件没有触发。 我的代码是...

jQuery(document).ready(function($) {
    jQuery("#btn_03").attr('checked', 'checked');

    jQuery("#btn_03").trigger("change");

    jQuery(".class input[type='radio']").live("change", function($) {
        alert("clicked");
    });
});

【问题讨论】:

  • 请提供您的html代码
  • 您需要使用 #btn_03 创建更改事件。然后它会工作

标签: javascript jquery html onclick radio


【解决方案1】:

您需要在触发事件之前分配事件处理程序。

当您实际触发事件时,您仍然没有为该事件附加任何侦听器。您正在下一行执行此操作。因此,事件change 确实被触发,但该事件没有任何反应。

你可以这样做

jQuery(document).ready(function($) {
    jQuery("#btn_03").attr('checked', 'checked');

    jQuery(".class input[type='radio']").on("change", function($) {
        alert("clicked");
    });

    jQuery("#btn_03").trigger("change");
});

根据最新的 jQuery 文档,也可以使用“on”而不是“live”来绑定事件

【讨论】:

    【解决方案2】:

    您需要在附加事件处理程序之后触发事件

    jQuery(".class input[type='radio']").on("change", function(e) {
        alert("clicked");
    });
    
    jQuery("#btn_03").prop('checked', true).trigger("change");
    

    也使用$.fn.on,而不是很久以前弃用的$.fn.live。而且最好设置checked属性而不是属性。

    【讨论】:

      【解决方案3】:

      您需要在实际调用更改事件之前挂钩更改事件。我已经包含了您要求的功能。

      我已将 change-event 目标更改为实际的无线电输入,因为我没有您的 html,但通常您很可能希望使用无线电组的名称来挂钩事件,因为这些是通常与单一行为相结合 - 就像$("input[name='radioName']").change(function(){ // Change event code });

      旁注:您可以使用“$”而不是“jQuery”来启动表达式。

      http://jsfiddle.net/du58fo3t/

      $(document).ready(function() {
      
        $("#btn_03").attr('checked', true); // Check radio button
      
        // Hook change event on radio button
        $("#btn_03").change(function() {
          alert("clicked");
        });
      
        // Trigger change on radio button
        $("#btn_03").trigger("change");
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-11-11
        • 1970-01-01
        • 1970-01-01
        • 2011-01-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多