Javascript Onclick事件错误:$未定义

时间:2013-08-26 09:32:35

标签: javascript jquery html css

当onclick事件发生时,我试图添加一些输入字段。我正在使用javascript来完成这项工作。当我尝试小提琴时,它运作良好。但它在我的localhost上不起作用。我收到以下错误消息。

ReferenceError: $ is not defined
$(".more").click(function() {

这是我的代码:

<!DOCTYPE script PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
    <head>
      <script src="//admin/lib/jquery-1.10.2.js" type="text/javascript">
      </script>

      <link href="//admin/css/layout.css" rel="stylesheet" type="text/css"/>

    <script type="text/javascript">

    $(".more").click(function() {
        $("#container").append("<br><div id='test'><label>Title: </label><input type=\"text\" id=\"txt_jobTitle\">&nbsp;<label>Company</label><input type=\"text\" id=\"id2\">&nbsp;<label>Started</label><input type=\"text\" id=\"txt_jobStarted\">&nbsp;<label>Ended</label><input type=\"text\" id=\"txt_jobStarted\">&nbsp;<div class='box'><a href='#'>x</a></div></div><br/>");
        var count = $(".box").length;

    });

        $(".box a").live("click", function() {
            $(this).parent().remove();
            $("#test").remove();
        });

        </script>

    </head>

    <body>


        <div id="container">

                                <a href="#" class="more">Add more +</a>
                        </div>

    </body>

        </html> 

我不知道如何解决这个问题,因为我不是javascript中的关键人物。我该如何解决这个问题?

我遇到了许多类似的解决方案,同样的问题,但没有一个解决。

非常感谢提前。

5 个答案:

答案 0 :(得分:1)

我怀疑在包含jQuery库之前调用了您的代码,或者jQuery js文件的路径错误/不正确。

答案 1 :(得分:0)

尝试使用jQuery代替$

jQuery(".more").click(function() {        
    //Do whatever
});

并确保您已加载js库文件,如jquery-1.10.2.js并将脚本放入DOM ready

答案 2 :(得分:0)

您需要使用jQuery.noConflict(),因为您的jQuery library与使用$

的其他库存在冲突

并将代码包装在document.ready

  

许多JavaScript库使用$作为函数或变量名,就像jQuery一样。在jQuery的情况下,$只是jQuery的别名,因此所有功能都可以在不使用$的情况下使用。如果你需要在jQuery旁边使用另一个JavaScript库,那么通过调用$ .noConflict()将$的控制权返回给另一个库。在jQuery初始化期间保存$的旧引用; noConflict()只是简单地恢复它们。

Official Document

答案 3 :(得分:0)

尝试这个,如果它工作比你jquery js路径不正确

<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>

答案 4 :(得分:0)

确保你使用正确的jquery路径,尝试像rajesh那样外部加载它,

<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>

如果你加载外部jquery 1.10.1会出现问题,你的live函数将无效。

    $(".box a").live("click", function() {
        $(this).parent().remove();
        $("#test").remove();
    });

所以请将其on()

$(document).on("click",".box a", function() {
    $(this).parent().remove();
    $("#test").remove();
});

这里是小提琴

http://jsfiddle.net/kanishka_bandara/pVRL3/