如何告诉jQuery仅在一个特定的网页上运行一个函数?

Jos*_*eph 15 jquery function css-selectors

我有一些jQuery代码,位于网站的每个网页上(在head元素中).

我可以用什么选择器语法告诉jQuery某个函数应该只在一个页面上运行而不是在站点上的所有其他页面上运行?

我可以以某种方式在选择器中指定页面名称或URL吗?

非常感谢

Den*_*huk 32

您可以使用if语句检查top.location.pathname.

if (top.location.pathname === '/my/path')
{
    /* magic ... */
}
Run Code Online (Sandbox Code Playgroud)

或者,如果你想让它更具可移植性并给出实际的if语句一些意义(所以有人阅读它会知道它是什么) - 如果你有权访问文档的body元素,你可以添加一个显示你想要的类运行此脚本.

因此,例如,如果/* magic ... */在上面的示例中与包含Facebook API有关,您可以使您的身体看起来像<body class="has-facebook-api">然后使用jQuery进行检查:

$(function () // on document.ready()
{
    if ($('body.has-facebook-api').length > 0)
    {
        /* magic ... */
    }
});
Run Code Online (Sandbox Code Playgroud)

确保在将jQuery包含在单独的脚本标记中之后运行.


虽然我们正在使用它,如果您在输出之前没有使用此脚本来转换页面的视觉效果,我建议您将所有或大部分脚本标记放在靠近页脚的位置以便更快地呈现页面.

  • 我建议在body标签中添加一个类或id并从那里开始.这样,即使您移动您的网站或文件结构,它仍然可以工作. (4认同)