我在下一个功能中收到此错误:
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;
}
}
}
});
答案 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() { ... });
答案 2 :(得分:0)
答案 3 :(得分:0)
直播不是一种功能
请在jQuery文档中查找。
不推荐使用版本:1.7,已删除:1.9
和
从jQuery 1.7开始,不推荐使用.live()方法。使用.on()附加事件处理程序。
答案 4 :(得分:0)
"从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上遇到了同样的问题,这导致了一个问题,即单击“更新”页面中的“全选”时,不会全选
从控制台可以看到该错误和指向文件update-core.php的说明。点击那里,它将在Source中打开文件
问题出在
$('#fastcarousel-generator-insert').live('click', function(event) {
本来应该
$('#fastcarousel-generator-insert').on('click', function(event) {
仅在我的服务器上转到该特定文件并搜索.live
是不够的,因为其中没有这样的行。然后,从带有.live
的句子中发现其中有#fastcarousel
。
禁用该插件后,“全选”功能再次开始起作用。