$(document).ready和jQuery(函数($)无法正常工作; jQuery已定义,但脚本未进入.ready函数

时间:2015-04-03 14:23:29

标签: javascript jquery document onload ready

编辑:

Here is the full HTML。我在这里直接粘贴太长了。我没有创建这个页面,我只需要清理它的问题。


我试图从$(document).ready中运行一个函数,因为我需要DOM在我的函数运行之前完成加载,因为我是绑定按钮。这就是我在剧本中的内容:

jQuery(function($) {
    alert('foo');
    SI.regionSelector.init();
});

我也尝试过:

$(document).ready(function(){
    alert('foo');
    SI.regionSelecter.init();
});

但警报从未发生过。我已经在Chrome中使用了调试器。我点击jQuery(函数($),我没有得到任何错误(实际上控制台显示了jQuery的定义,所以我知道我的页面上有jQuery),然后调试器跳转到结束jQuery函数,但它根本不会发出警报。

以下是完整的脚本:

var SI = SI || {};

SI.regionSelector = {
  settings: {},
  regions: [],
  init: function() {
    jQuery('a').click(function(e){ e.preventDefault(); });
    // Start the DOMSelection tool when a region is clicked
    jQuery('#region-selector .region').click(function(){
      targetRegion = jQuery(this);
      SetupDOMSelection();
    });

    // When saving, pull the values stored by the DOMSelection tool
    // and stuff them into hidden fields so they can be picked up on
    // the back end.
    jQuery('#region-selector .save').click(function(){
      jQuery('#site_ingestor_region_selector .btn.region').each(function(){
        var values = {};
        values.innerHTML = jQuery(this).data('innerHTML');
        values.xpath = jQuery(this).data('xpath');
        var id = jQuery(this).attr('id');
        var $hiddenInput = jQuery('input[name="'+id.replace('btn', 'form-region')+'"]');
        $hiddenInput.val(JSON.stringify(values));
      });
    });

    jQuery('.btn.edit').click(function() {
      jQuery('#site_ingestor_html_editor').css('display', 'block');
      jQuery('body').css('overflow', 'hidden');
      window.scrollTo(0, 0);
    });
    jQuery('.btn.cancel').click(function() {
      jQuery('#site_ingestor_html_editor').css('display', 'none');
      jQuery('body').css('overflow', 'scroll');
        });
      }
};

jQuery(function($) {
    alert('foo');
    SI.regionSelector.init();
});

1 个答案:

答案 0 :(得分:1)

我会检查一些事情:

  • 确保在脚本
  • 之前引用jquery .js库
  • 确保您的$(或jQuery,取决于您使用的内容)与其他任何库不冲突
  • 在浏览器的JS控制台中检查其他JS错误(或其他消息)

我还会运行一个完整的Markup page validation(可能修剪一些标记以降低复杂性),看看是否存在一些明显的HTML错误,比如缺少关闭体标记或类似的东西。