Проблема с использованием jQuery $ .ajax () - PullRequest
0 голосов
/ 16 марта 2011

У меня проблемы с использованием ajax с jQuery ...

У меня есть следующий jscript:

$(document).ready(function() {

    $('rel[close]').click(function() {
        $(this.parent).close();
    });

    $('a[rel=track]').click(function() {
        var track = this.attr('href');
        track = track.replace(/^.*#/, ''); // remove the hash part of tag id
        var data = 'track=' + track + '&user=<? echo $user; ?>',
        $.ajax({
            url: 'purchase.php',
            type: 'GET',
            data: data,
            cache: false,
            success: function (html) {
                $('#purchasePanel').html(html);
                $('#purchasePanel').show();
                }
            }
        )
    });
});

Отладчик говорит, что у них проблемы со строкой $.ajax({ Неожиданный токен .

Это CSS:

#purchasePanel { position:absolute; width:200px; height:115px; z-index:1; visibility:hidden; }

С этим HTML:

<div id="purchasePanel"> <a href="Close" rel="close">Close this window</a> </div>

Сценарий не выполняетсязапускать и не показывать скрытый DIV или что-то в этом роде.

Есть идеи, почему ??

Большое спасибо, Алекс

Ответы [ 4 ]

3 голосов
/ 16 марта 2011

У вас были неправильно расставленные скобки. (они были просто сбиты с толку и не имеют правильного отступа)

Прямо перед $.ajax вызовом у вас есть , вместо ;.

Вам также необходимо использовать $(this).attr('href');, поскольку this является простым DOM-объектом, а .attr() нужен объект jQuery.

Вот код, который должен работать:

$(document).ready(function() {

    $('rel[close]').click(function() {
        $(this.parent).close();
    });

    $('a[rel=track]').click(function() {
        var track = $(this).attr('href');
        track = track.replace(/^.*#/, ''); // remove the hash part of tag id
        var data = 'track=' + track + '&user=<? echo $user; ?>';
        $.ajax({
            url: 'purchase.php',
            type: 'GET',
            data: data,
            cache: false,
            success: function (html) {
                $('#purchasepanel').html(html);
                $('#purchasepanel').show();
            }
        });
    });
});
1 голос
/ 16 марта 2011

Вероятно, здесь запятая, а не точка с запятой:

$('a[rel=track]').click(function() {
    var track = this.attr('href');
    track = track.replace(/^.*#/, ''); // remove the hash part of tag id
    var data = 'track=' + track + '&user=<? echo $user; ?>', <--------------
    $.ajax({
        url: 'purchase.php',
        type: 'GET',
        data: data,
        cache: false,
        success: function (html) {
            $('#purchasePanel').html(html);
            $('#purchasePanel').show();
            }
        }
    )
});
0 голосов
/ 16 марта 2011

Попробуйте это:

$(document).ready(function() {

    $('rel[close]').click(function() {
        $(this.parent).close();
    });

    $('a[rel=track]').click(function() {
        var track = this.attr('href');
        track = track.replace(/^.*#/, ''); // remove the hash part of tag id
        var data = 'track=' + track + '&user=<? echo $user; ?>';
        $.ajax({
            url: 'purchase.php',
            type: 'GET',
            data: data,
            cache: false,
            success: function (html) {
                $('#purchasePanel').html(html);
                $('#purchasePanel').show();
                }
        });
    });
});
0 голосов
/ 16 марта 2011

Я не знаю, вызывает ли это проблему, но у вас нет точки с запятой в конце вызова функции ajax.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...