Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么(这个)。成功后不会工作:_Javascript_Jquery - Fatal编程技术网

Javascript 为什么(这个)。成功后不会工作:

Javascript 为什么(这个)。成功后不会工作:,javascript,jquery,Javascript,Jquery,在我的代码中,我使用了前面一个问题中的两行代码 $(this).removeClass('page larger').addClass('current'); $(this).siblings().removeClass('current').addClass('page larger'); 如果我把这些放在成功之外的任何地方:效果很好。但如果我把它们放在成功里面:它们就不会起作用。我需要他们只为成功而努力:。我怎样才能解决这个问题 <!DOCTYPE html> <html

在我的代码中,我使用了前面一个问题中的两行代码

$(this).removeClass('page larger').addClass('current');
$(this).siblings().removeClass('current').addClass('page larger');
如果我把这些放在成功之外的任何地方:效果很好。但如果我把它们放在成功里面:它们就不会起作用。我需要他们只为成功而努力:。我怎样才能解决这个问题

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>PHP, jQuery search demo</title>
<style type="text/css">
.current{
padding:5px;
border:1px solid #000000;
background-color:white;
cursor:pointer;
}
.page{
padding:5px;
border:1px solid #000000;
background-color:red;
cursor:pointer;
}
</style>

<script type="text/javascript" src="http://localhost/jQuery1.8.3.js"></script>
<script type="text/javascript">
$(function() {

    $('.page').live('click', function() {

       var menus    =($(this).attr("menus"));
       var data            = menus;

        if(data) {

        //alert (data);
        //    // ajax call
            $.ajax({
                type: "GET",
                 url: "pages.php",
                data: data,
                dataType: "json",
               cache: false,
          beforeSend: function(html) {

                    $(".pageLoading").html("Fetching new posts...");

                },
               success: function(page_data){
                    $(".posts").empty();
                    $(".pageLoading").empty();
                    $(".posts").html(page_data['articles']);
                    console.log (page_data['articles']);

                               $(this).removeClass('page larger').addClass('current');
                              $(this).siblings().removeClass('current').addClass('page larger');

              },

          });    
        }
        return false;
    });
    /////////////////////////////////////////////////////////////////////////

});
</script>

</head>
<body>
    <div class="posts">These are the existing posts</div>
    <br />
        <div class="navigation clearfix">
            <div class="menusHolder">
                    <span  menus="in/consumer/p22" class="current">1</span>
                    <span  menus="in/consumer/p19" class="page larger">2</span>
                    <span  menus="in/consumer/p15" class="page larger">3</span>
                    <span  menus="in/consumer/p10" class="page larger">4</span>
            </div>
        </div>
        <br />
        <div class="pageLoading"></div>
</body>
</html>

PHP,jQuery搜索演示
.当前{
填充物:5px;
边框:1px实心#000000;
背景色:白色;
光标:指针;
}
.第页{
填充物:5px;
边框:1px实心#000000;
背景色:红色;
光标:指针;
}
$(函数(){
$('.page').live('click',function()){
变量菜单=($(this).attr(“菜单”);
变量数据=菜单;
如果(数据){
//警报(数据);
////ajax调用
$.ajax({
键入:“获取”,
url:“pages.php”,
数据:数据,
数据类型:“json”,
cache:false,
发送前:函数(html){
$(“.pageLoading”).html(“获取新帖子…”);
},
成功:功能(第页数据){
$(“.posts”).empty();
$(“.pageLoading”).empty();
$(“.posts”).html(页面数据['articles]);
console.log(page_data['articles']);
$(this).removeClass('page larger').addClass('current');
$(this).sides().removeClass('current').addClass('page larger');
},
});    
}
返回false;
});
/////////////////////////////////////////////////////////////////////////
});
这些是现有的员额

1. 2. 3. 4.

此的范围已更改。如果要保留对原始元素的引用,请在
单击
范围中创建一个变量,
success
处理程序将其包含在其闭包中:

$(function() {

    $('.page').live('click', function() {

       var menus    =($(this).attr("menus"));
       var data            = menus;
       var $that = $(this); // <- add this

        if(data) {

        //alert (data);
        //    // ajax call
            $.ajax({
                type: "GET",
                 url: "pages.php",
                data: data,
                dataType: "json",
               cache: false,
          beforeSend: function(html) {

                    $(".pageLoading").html("Fetching new posts...");

                },
               success: function(page_data){
                    $(".posts").empty();
                    $(".pageLoading").empty();
                    $(".posts").html(page_data['articles']);
                    console.log (page_data['articles']);

                     // change $(this) to $that. success handler is a closure that will include $that
                     $that.removeClass('page larger').addClass('current');
                     $that.siblings().removeClass('current').addClass('page larger');

              },

          });    
        }
        return false;
    });
    /////////////////////////////////////////////////////////////////////////

});
$(函数(){
$('.page').live('click',function()){
变量菜单=($(this).attr(“菜单”);
变量数据=菜单;
var$that=$(this);//使用


在ajax范围内,这指的是ajax对象。

上下文选项将完成上述操作

只需将其添加到ajax调用中,如下所示:

$.ajax({
    type: "GET",
    context: this,
    url: "pages.php",
    data: data,
    ...
    success: function() {
        $(this).removeClass('page larger').addClass('current');
        $(this).siblings().removeClass('current').addClass('page larger');
    }
});

的含义与函数内部的含义不同(与您的意思不同)。请明确提及
$
中的选择器。此选择器很好且简单。只需进行一次更改。
$.ajax({
    type: "GET",
    context: this,
    url: "pages.php",
    data: data,
    ...
    success: function() {
        $(this).removeClass('page larger').addClass('current');
        $(this).siblings().removeClass('current').addClass('page larger');
    }
});