jQuery函数在测试页面中工作,但不是整个网站

时间:2011-09-08 09:44:17

标签: jquery

所以jQuery再次让我感觉最好:(

我想知道你是否有人能帮我弄清楚为什么我创建的某个jQuery函数不会在一个环境中工作但在另一个环境中工作。

$("#processor li").click(function() {
    $("#processor li").removeClass("active-line");
    $(this).addClass("active-line");
});

这是上述功能从

起作用的HTML
<ul id="processor">
    <li>
        <input id="cpu-1" type="radio" value="1" name="cpu">
        <label for="cpu-1">Intel&reg; Core&trade; i3 2100 3.1GHz</label>
    </li>
</ul>

到目前为止,我已经在一个单独的文件中测试了它,但是当它导回到网站时,功能停止了。我使用$(document).ready(function() {测试了测试页面中的代码,并且两种方式都运行良好,并且在整个网站中进行了相同的测试,但仍然无法帮助解决问题。

我在jQuery函数中调用元素时也尝试过非常绝对的路径而不是在网站中不起作用。

所以我希望有人可以帮我弄清楚为什么这个功能在完整的网站上不起作用。

提前致谢,

3 个答案:

答案 0 :(得分:2)

你必须使用

.live('click', function() {

而不是

.click(function() {

如果内容来自ajax

答案 1 :(得分:0)

顺便说一下,你有一个逻辑问题:

$("#processor li").removeClass("active-line"); == $(this).removeClass("active-line");

在这种情况下,因为你只有一个“li Tag”。

换句话说,当您点击时,您总是添加“active-line”类

答案 2 :(得分:0)

您需要检查您的网站与单独页面之间的差异,查找:

  • 多个#processor元素,因为没有两个元素可以具有相同的id
  • 检查li元素数量的差异
  • 检查其他可能影响这些元素的脚本(可能通过检查DOM变量)
  • 任何可以阻止您点击元素的css样式,例如div ontop