TypeError:$(...)。live不是函数

时间:2014-04-29 13:18:19

标签: javascript jquery

我在下一个功能中收到此错误:

TypeError: $(...).live is not a function
$(".gem").live("click", function () {
    if (gameState == "pick") {
        posY = $(this).position().top;
        posX = $(this).position().left;
        $("#marker").show();
        $("#marker").css("top", posY - 5).css("left", posX - 5);
        if (selectedRow == -1) {
            selectedRow = (posY - 10) / 60;
            selectedCol = (posX - 10) / 60;
        } else {
            posY = (posY - 10) / 60;
            posX = (posX - 10) / 60;
            if ((Math.abs(selectedRow - posY) == 1 && selectedCol == posX) || (Math.abs(selectedCol - posX) == 1 && selectedRow == posY)) {
                $("#marker").hide();
                gameState = "switch";
                gemSwitch();
            } else {
                selectedRow = posY;
                selectedCol = posX;
            }
        }
    }
});

6 个答案:

答案 0 :(得分:4)

尝试使用代码中的live替换on

$(".gem").live("click",function(){

替换为

$(".gem").on("click",function(){
JQuery的旧版本(1.7以后)

.live() 已弃用,因此您需要使用.on()

来自docs

  

"从jQuery 1.7开始,不推荐使用.live()方法。使用.on()来   附加事件处理程序。旧版jQuery的用户应该使用   .delegate()优先于.live()。"

答案 1 :(得分:1)

尝试在方法

上使用jquery
$(".gem").on('click', function() { ... });

https://api.jquery.com/on/

https://api.jquery.com/live/ - 已弃用

答案 2 :(得分:0)

不推荐使用.live(),将其更改为.on()

答案 3 :(得分:0)

  

直播不是一种功能

请在jQuery文档中查找。

searchthe API page说明:

  不推荐使用

版本:1.7,已删除:1.9

  

从jQuery 1.7开始,不推荐使用.live()方法。使用.on()附加事件处理程序。

答案 4 :(得分:0)

http://api.jquery.com/live/

  

"从jQuery 1.7开始,不推荐使用.live()方法。使用.on()附加事件处理程序。旧版jQuery的用户应该使用.delegate()而不是.live()。"

已在最新版本中删除。使用

$(".gem").on('click', '<insert element containing .gem here>', function(){

http://api.jquery.com/on/ 寻找&#34;直接和委派的活动&#34;

答案 5 :(得分:0)

我在Weblog上遇到了同样的问题,这导致了一个问题,即单击“更新”页面中的“全选”时,不会全选

enter image description here

从控制台可以看到该错误和指向文件update-core.php的说明。点击那里,它将在Source中打开文件

Fast Carousel problem

问题出在

$('#fastcarousel-generator-insert').live('click', function(event) {

本来应该

$('#fastcarousel-generator-insert').on('click', function(event) {

仅在我的服务器上转到该特定文件并搜索.live是不够的,因为其中没有这样的行。然后,从带有.live的句子中发现其中有#fastcarousel

禁用该插件后,“全选”功能再次开始起作用。