Javascript jquery-在这种情况下为什么需要live()?

Javascript jquery-在这种情况下为什么需要live()?,javascript,jquery,bind,live,autosuggest,Javascript,Jquery,Bind,Live,Autosuggest,我的情况有点奇怪。我理解live()和bind()函数的前提,但在我认为不需要它们的情况下,我似乎需要它们。我会解释的 我在jquery中做了一个自动建议。我在页面顶部包括了autosuggest.js。然后我有一个输入字段 JS的基础是: $(".autosuggest").keyup(function() { } 这是有效的-在keyup上,我的函数按预期执行等-我不需要使用live()或bind(),因为输入字段位于从get go开始的页面上 现在。。我还制作了一个“星级评定者”式的剧本

我的情况有点奇怪。我理解live()和bind()函数的前提,但在我认为不需要它们的情况下,我似乎需要它们。我会解释的

我在jquery中做了一个自动建议。我在页面顶部包括了autosuggest.js。然后我有一个输入字段

JS的基础是:

$(".autosuggest").keyup(function()
{
}
这是有效的-在keyup上,我的函数按预期执行等-我不需要使用live()或bind(),因为输入字段位于从get go开始的页面上

现在。。我还制作了一个“星级评定者”式的剧本。 我有各种
  • 元素(已设置样式),悬停时它们将重新设置样式

     $('.rating li').mouseover(function() {
    }
    
    还不起作用

     $('.rating li').live('mouseover',function() {
    }
    
    是的

    为什么在这种情况下我需要使用“live”,而在autosuggest的情况下我不需要


    谢谢

    当您的
    .mouseover()
    不工作时,
    .li
    尚未解析


    您可以将其包装在
    $(document.ready(function(){…})中
    或使用
    .live()
    (这将为脚本中当前解析的任何内容以及将来添加的任何元素创建绑定)。

    .mouseover()
    不工作时,
    .li
    尚未解析


    您可以将其包装在
    $(document.ready(function(){…})中
    或使用
    .live()
    (这将为脚本中当前解析的任何内容以及将来添加的任何元素创建绑定)。

    我能想象的唯一会导致这种情况的原因是缺少domready事件。这应该起作用:

    $(function () {
        $('.rating li').mouseover(function() {
        }
    });
    

    我能想象的唯一会导致这种情况的原因是缺少domready事件。这应该起作用:

    $(function () {
        $('.rating li').mouseover(function() {
        }
    });
    
    你把$('.rating li').mouseover(function()放在上面了吗{ $('.rating li').mouseover(function() { } } 在$(document).ready(function(){….}中

    即使包含.js文件,如果未加载页面中的元素('rating li'),也不会进行绑定。

    是否将$('.rating li').mouseover(function()放在{ $('.rating li').mouseover(function() { } } 在$(document).ready(function(){….}中


    即使包含一个.js文件,如果页面中的元素('rating li')未加载,也不会进行绑定。

    如果没有看到更多代码,很难确定。但我猜您的脚本在页面加载完成之前正在运行。请尝试包装您的绑定调用
    $(document.ready(…)
    ,则可以访问(以及依赖于特定dom元素存在的任何其他内容)

    大概是这样的:

    $(document).ready( function() {
        $('.rating li').mouseover(function() {
           // whatever
        });
    
        $(".autosuggest").keyup(function() {
           // whatever else
        });
    });
    
    如果不是这样,那么发布更多的代码,我们将进一步挖掘


    祝你好运。

    如果没有看到更多的代码,很难说清楚。但我猜你的脚本在页面加载完成之前正在运行。请尝试通过调用
    $(document.ready(…)
    来包装绑定(以及依赖于特定dom元素存在的任何其他内容)

    大概是这样的:

    $(document).ready( function() {
        $('.rating li').mouseover(function() {
           // whatever
        });
    
        $(".autosuggest").keyup(function() {
           // whatever else
        });
    });
    
    如果不是这样,那么发布更多的代码,我们将进一步挖掘


    祝你好运。

    匹配$('.rating li')的元素在$(文档)时存在吗。就绪已执行?匹配$('.rating li')的元素在$(文档)时存在吗。就绪已执行?谢谢大家。我忘了放$(文档)。就绪(函数(){到那个特定的js文件中。所以..为了检查我在没有代码片段的情况下“get this”,js是在页面内容之前加载的,因此我需要live()但如果包含在$(document).ready(function(){}javascript在页面之后由jquery中的一些复杂的东西加载?ThxYeah,javascript在DOM就绪之前从DOM读取时被解析和执行。将其放入DOM就绪事件会在页面上的所有内容加载后触发。谢谢大家。我忘了放$(document)。ready(function(){到那个特定的js文件中。所以..为了检查我在没有代码片段的情况下“get this”,js是在页面内容之前加载的,因此我需要live()但如果包含在$(document).ready(function(){}javascript在页面之后由jquery?ThxYeah中的一些复杂内容加载,javascript在DOM就绪之前从DOM读取时被解析和执行。将其放入DOM就绪事件中会在页面上的所有内容加载后触发。