2

我一直在尝试在我的浏览器操作弹出窗口中显示和隐藏(可能切换)选项,但没有成功。下面的代码是我的弹出窗口的主体

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="popup.js"></script>
<div class="show">
    <a href="#" class="showcontent">Show</a>
    <a href="#" class="hidecontent">Hide</a>
    <div class="somecontent">
        <p>some content<br />
            <a href="#">Link</a><br />
        </p>
    </div>
</div>

popup.js 文件包含以下内容:

$(document).ready(function(){
    $(".somecontent").hide();
    $(".showcontent").click(function(){
        $(".somecontent").show();
    });

    $(".hidecontent").click(function(){
        $(".somecontent").hide();
    });
});

我认为问题在于 Chrome API 对我的 popup.js 文件有问题。身体出现在我的弹出窗口中,但显示和隐藏操作不起作用。任何想法如何使这项工作,如果没有,另一种方法来获得相同的结果(即:点击切换)?

编辑:从 javascript 控制台,我收到此错误的错误:

未捕获的类型错误:无法调用 null 的方法“就绪”

其中使用 ready 函数指向上述代码行。

4

6 回答 6

11

jQuery 也可能与您页面中的其他内容发生冲突以使用该$()功能。(我自己也遇到了这个问题。)如果是这样,更改$()调用jQuery()应该可以解决问题。

于 2011-06-09T21:18:49.563 回答
1

由于您既没有从单击处理程序返回 false 也没有调用preventDefault(),因此页面将在单击时重新加载,并且.somecontent将再次隐藏。将您的 JS 更改为以下内容:

$(document).ready(function(){
    $(".somecontent").hide();
    $(".showcontent").click(function(){
        $(".somecontent").show(); return false;
    });

    $(".hidecontent").click(function(){
        $(".somecontent").hide(); return false;
    });
});
于 2010-01-16T20:39:23.937 回答
0

似乎这个老问题仍未得到解答,我想我会试试运气。

您是否尝试过再次下载 jquery.js(文件可能已损坏)。另外,如果您仍然有兴趣解决它,您可以将您的 src 发布到某个地方供我们阅读(例如http://jsfiddle.net/

于 2011-03-24T16:47:40.510 回答
0

可能 popup.js 导致解析/执行错误?尝试查看 chrome 是否可以打印错误:

JavaScript 控制台:单击页面菜单图标并选择开发人员 - JavaScript 控制台。从这里,您将能够查看 JavaScript 执行中的错误,并输入其他 JavaScript 命令来执行。

JavaScript 调试器:可用作页面菜单图标 0 开发人员 - 调试 JavaScript,调试器提供了一个命令提示符,您可以从中设置断点、回溯等。在调试器命令行中键入帮助以开始。

这里

如果未加载 jquery,则可能会发生该错误:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>

<script>alert($(document))</script>

它应该弹出对象...

于 2010-01-16T20:37:14.830 回答
0

该错误意味着 jQuery 未正确加载。检查以确保它被称为 jquery.js 并存储在根文件夹中。

于 2010-01-20T18:33:42.130 回答
0

Your code worked fine for me. As other said the error you're getting sounds like the jquery.js file isn't being found/loaded. This is a long shot, but if you're on Windows check the properties of the jquery.js file and see if there's an Unblock button right on the first tab. Click it.

于 2010-06-25T13:44:36.053 回答