为数据赋值:在$ .ajax函数中

时间:2014-01-24 13:11:19

标签: javascript jquery ajax

我正在处理我的应用程序和我的html中有三个链接evere链接属于不同的类别,我想在有人点击时加载当前类别。但问题在于我的功能,我不知道如何捕获所选类别。

这是我的代码:

这是html中的三个链接:

<a id="rock" data-role="button" data-transition="slide" href="category.html">Rock</a>
    <a id="electronica" data-role="button" data-transition="slide" href="category.html">Electrónica</a>        
    <a id="pop" data-role="button" data-transition="slide" href="category.html">Pop</a>

这是我的功能,你可以看到在开始时我尝试了每个id但没有任何反应,接下来,ajax和数据应该捕获类别的名称。

var valueCat = false;

        $('#rock, #electronica').click(function () {
            if($(event.target).attr('id')=='rock'){ 
                valueCat = 'rock';
                valueCat = true; 
                return;
            }
            else if($(event.target).attr('id')=='pop'){
                valueCat = $('#pop').attr('id');  
                valueCat = true;
                return;
            }
        });


        //alert(valueCatRockArg);
        $.ajax({        
            url: 'http://.....org/api/get_category_posts',
            data:'category_name='+valueCat+'&count=5&order=desc',
            type: 'GET',
            dataType: 'jsonp',
            success: function(data){               
                var source   = $("#category-template").html(); //Get the HTML from the template in the script tag
                var template = Handlebars.compile(source); // compilamos la plantilla
                var blogData = template(data); // en data se almacena el contenido que nos viene de wordpress
                $('#category-data').html(blogData); // mostramos el contenido
                $('#category-data').trigger('create');
                dfd.resolve(data);

            },

            error: function(data){
                console.log(data);
            }
        });

我希望你理解我,我是应用程序的新手,而且我的英语很糟糕。

提前谢谢你!

完整功能:

category: function(){
    function getCategory() {
        var dfd = $.Deferred();


        //alert(valueCatRockArg);
        $.ajax({        
            url: 'http://ultravoz.org/api/get_category_posts',
            data:'category_name='+valueCat+'&count=5&order=desc',
            type: 'GET',
            dataType: 'jsonp',
            success: function(data){               
                var source   = $("#category-template").html(); //Get the HTML from the template in the script tag
                var template = Handlebars.compile(source); // compilamos la plantilla
                var blogData = template(data); // en data se almacena el contenido que nos viene de wordpress
                $('#category-data').html(blogData); // mostramos el contenido
                $('#category-data').trigger('create');
                dfd.resolve(data);

            },

            error: function(data){
                console.log(data);
            }
        });

        return dfd.promise();
    };

    getCategory().then(function(data){
        $('#all-categories').on('click','li', function(e){                
            localStorage.setItem('postData', JSON.stringify(data.posts[$(this).index()]));
        });
    });


},

2 个答案:

答案 0 :(得分:3)

你可以试试这个:

$('#rock, #electronica, #pop').click(function (e) {
    e.preventDefault();     //stop native link clicking
    valueCat = this.id;

    //then put your ajax call here, inside this function...
});

答案 1 :(得分:0)

    $('a').click(function () {
      var cat=$(this).attr('id');
      $.ajax({        
        url: 'http://.....org/api/get_category_posts',
        data:'category_name='+cat+'&count=5&order=desc',
        type: 'GET',
        dataType: 'jsonp',
        success: function(data){               
            var source   = $("#category-template").html(); //Get the HTML from the template in the script tag
            var template = Handlebars.compile(source); // compilamos la plantilla
            var blogData = template(data); // en data se almacena el contenido que nos viene de wordpress
            $('#category-data').html(blogData); // mostramos el contenido
            $('#category-data').trigger('create');
            dfd.resolve(data);

        },

        error: function(data){
            console.log(data);
        }
    }); 
 });

点击链接时必须调用你的ajax函数。你在外面调用它