2009-08-21 28 views
4

我正在学习jQuery和我写了我的主页,试图从一个单独的HTML文件中加载一些静态的标记,并将其插入我的主页时,我将鼠标悬停在一个链接一个简单的AJAX外部脚本...Noobie Jquery问题 - 为什么这个简单的脚本不起作用?

$(function() 
{ 
    $('a#contact_link').hover(function() 
    { 
     alert('test1'); 
     $('<div id="contact_container">').load('contact.htm #contact', function() 
     { 
      alert('test2'); 
      /*$(this) + '</div>'; 
      $(this).hide() 
       .insertAfter('#header') 
       .slideDown(1000) */ 
     }); 

     return false; 
    }); 
}); 

在这一点上,我只是试图让'test2'提示框显示,这就是为什么我有下面的代码注释掉。目前,'test1'警报框是唯一显示的警告框,意味着'test2'警报线从未被击中。你的想法?

这里的代码片断从我contact.htm文件...

<div id="contact_container"> 
    <div id="contact"> 
     <p> 
     <strong>NAME</strong>: My Name<br/> 
     <strong>EMAIL</strong>: My Email<br/> 
     <strong>SKYPE</strong>: My Skype Handle<br/> 
     <strong>ADDRESS</strong>: My Address<br/> 
     </p>   
    </div><!--end contact--> 
</div><!--end contact_container--> 

在此先感谢这么多的帮助!

回答

8

您调用了不正确使用选择器语法$ .load,选择不是一个HTML字符串,它必须符合由jQuery Selectors manual设置的语法规则:

$('a#contact_link').hover(function() 
    { 
     alert('test1'); 
     $('div#contact_container').load('contact.htm #contact', function() 
     { 
      alert('test2'); 
      /*$(this) + '</div>'; 
      $(this).hide() 
       .insertAfter('#header') 
       .slideDown(1000) */ 
     }); 

     return false; 
    }); 
+0

感谢这么多,但它似乎仍然没有工作。任何其他想法? – BeachRunnerFred 2009-08-21 04:38:43

+0

我回来了,我认为修好了,谢谢! – BeachRunnerFred 2009-08-21 04:46:19

+0

作为说明,最好将大括号放在与函数()相同的行上。推理是Javascript执行分号插入。参考:http://www.youtube.com/watch?v = hQVTIJBZook – 2009-08-21 05:10:54

2

的选择很可能是病因。

$(function() 
{ 
    $('a#contact_link').hover(function() 
    { 
     alert('test1'); 
     $('#contact_container').load('contact.htm', function() 
     { 
      alert('test2'); 
      /*$(this) + '</div>'; 
      $(this).hide() 
       .insertAfter('#header') 
       .slideDown(1000) */ 
     }); 

     return false; 
    }); 
}); 
+0

非常感谢,虽然这似乎也没有工作。不知道这里发生了什么... – BeachRunnerFred 2009-08-21 04:40:31

+0

我采取了回来,它现在的作品。非常感谢! – BeachRunnerFred 2009-08-21 04:41:35

+0

你让我担心了一下...... – ChaosPandion 2009-08-21 04:43:58

1

我相信你的#contact_container选择器不是很洁净。在JQuery站点查看选择器doco(http://docs.jquery.com/Selectors)。我觉得这样的事情可能会好一点:

$(function() 
{ 
$('a#contact_link').hover(function() 
{ 
    alert('test1'); 
    $('#contact_container').load('contact.htm #contact', function() 
    { 
     alert('test2'); 
     /*$(this) + '</div>'; 
     $(this).hide() 
      .insertAfter('#header') 
      .slideDown(1000) */ 
    }); 

    return false; 
}); 
}); 
相关问题