【问题标题】:jQuery include file - functions assigned to another page?jQuery包含文件-分配给另一个页面的功能?
【发布时间】:2012-06-27 23:10:36
【问题描述】:

我有一个适用于多个页面的 .JS 包含文件。但是,对于一个页面,我现在采用了 jquery 方法,并使用

$("").on("click","#id",function(){});

关于我的一些元素。但是现在当我转到一个没有该元素的页面时,它会标记为错误。无论如何,如果它们没有出现在页面上,它只是简单地忽略这些元素?否则我将不得不为每个页面编写单独的 .JS 文件,我确信这不是正确的方法。

感谢您的帮助。 :)

(注意:我正在指定标签等我只是举个例子,我道歉,我删除了标签名称。让我们调用标签#mydiv。当使用上述子句时,在没有#mydiv的页面上,然后我收到控制台错误。但是,在确实有 #mydiv 的页面上完全没问题!所以问题是:我怎样才能阻止该错误被捕获?)

【问题讨论】:

  • jQuery,假设它被加载到你的 all 页面上,它非常擅长处理零元素匹配选择器的情况。也就是说,我不认为$('') 是一个有效的选择器。如果您没有要使用的更具体的元素,请使用 $(document).on(...);
  • $("") 保证不选择任何内容。你得到的错误是什么?

标签: javascript jquery ajax include


【解决方案1】:

您的错误应该与其他内容有关,因为如果某些元素不存在,on 不会抛出任何错误。试试

$("body").on("click","#id",function(){});

如果也可以使用内部容器代替body

$("#your-control-container").on("click","#id",function(){});

【讨论】:

  • 是的,我想是因为我使用的是 $(document).on("click"...。现在已经排序,谢谢!
【解决方案2】:

我将在黑暗中尝试一下,并猜测不需要 jQuery 部分的页面在包含提到的 .js 文件之前不会使用 <script> 标记加载 jQuery。如果是这种情况,您的 jQuery 代码将抛出错误,因为未定义 $() 函数(它只是 jQuery() 的简写)。

您应该能够通过测试 window.jQuery 在您的 JavaScript 文件中是否未定义来解决此问题:

if(window.jQuery) {
    // code that uses jQuery here
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-07
    • 2021-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-25
    • 1970-01-01
    相关资源
    最近更新 更多