0

jquery 很强大,但是有很多不同的问题。我有这个代码:

 $(
     function () {
         // Get a reference to the content div (into which we will load content).
         var jContent = $("#content");

         // Hook up link click events to load content.
         $("ul li a").click(
             function () {
                 var jLink = $(this);

                 // Clear status list.
                 $("#ajax-status").empty();

                 // Launch AJAX request.
                 $.ajax({
                     // The link we are accessing.
                     url: jLink.attr("href"),

                     // The type of request.
                     type: "GET",

                     // The type of data that is getting returned.
                     dataType: "html",


                     error: function () {
                         ShowStatus("AJAX - error()");

                         // Load the content in to the page.
                         jContent.html("<p>Page Not Found!!</p>");
                     },

                     beforeSend: function () {
                         ShowStatus("AJAX - beforeSend()");
                     },

                     complete: function () {
                         ShowStatus("AJAX - complete()");
                     },

                     success: function (strData) {
                         ShowStatus("AJAX - success()");
                         jContent.html($(strData).find('#bglogin').html());
                     }
                 });

                 // Prevent default click.
                 return (false);
             }
         );

     }
 );

当我在我的博客上使用它时,它会转到一个空白页面。我改变了很多次,但它不起作用。但是,当我在空白页面上使用它时,(仅将此代码用于博客)它可以工作并且是一个新问题。我们认为在这个页面:/login 有这些标签:

<div id="login">
   <div id="bglogin">
     <p>hello</p>
   </div>
</div>

(jContent.html($( strData ).find('#bglogin').html());)当我调用获取id的 jquery 时#bglogin,它会获取代码,但是,当我想要#loginid 时,它什么也得不到。

4

2 回答 2

0

不要认为它的问题,但你不应该使用return false。这将是正确的方法

$("ul li a").on('click', function (event) {
    event.preventDefault(); // this will stop default behaviour.
    var jLink = $(this);
});
于 2013-07-07T12:40:10.870 回答
0

使用这个 html:

<div id="login">
   <div id="bglogin">
     <p>hello</p>
   </div>
</div>

这个 javascript

$(strData).find('#login').html()

没有给您任何东西,因为该find方法查找子元素,在这种情况下您的根元素是#login. 您正在从元素中寻找child带有 id#login#login元素,但代码找不到它。这就是为什么它不起作用。在这种情况下,只需简单地写:

jContent.html(strData);
于 2013-07-07T12:44:13.073 回答