5

最新の jQuery (1.9.0) を使用して、このコードが機能しない理由について混乱しています。

$.testAjaxFilter = function() {

    var base = this;

    // get faq categories
    var currentFaqCategories = $('#category-list ul li a');

    // loop through each faq category link and bind a click event to each
    if ( typeof currentFaqCategories !== 'undefined') {

        $.each(currentFaqCategories, function(index, category) {

            $(category).click( function(e) {
                $(e.target).getFaqList();
                return false;
            });

        });

    }

    // GET faq list elements from category link
    $.fn.getFaqList = function() {

        $.get($(this[0]).attr('href'), function(data) {

            base.addFaqSectionToPage( $(data).find('section.faq-page #content-column') );

        });

    };

    // add new faq section to current page
    this.addFaqSectionToPage = function(faqSection) {

        // remove old faq section
        var currentFaqSection = $('section.faq-page #content-column');

        currentFaqSection.empty();
        currentFaqSection.append(faqSection);

    };

};

$.testAjaxFilter();

コンソールを表示しているときに、カテゴリ リンクの 1 つをクリックすると、GET はその応答でページ全体を取得しますが、その後に構文エラー、認識されない式: (取得したページからすべての HTML をリストします) が続きます。で何か問題が発生しています。$.fn.getFaqListおそらく$(data)?の使用です。

私が間違っていることは明らかですか?どんな助けでも大歓迎です。私は AJAX に精通していません。

4

2 に答える 2

10

これを指摘してくれたMusaに感謝します。正解としてあなたに報いるでしょう...しかし、私はコメントに対してそれを行うことはできないと思います:(

交換する必要がありました:

$(data).find

これとともに:

$($.parseHTML(data)).find

他のStackoverflowの回答に基づいて、以前に同様のことを試しましたが、適切に実行していなかったため、エラーが発生し続けました。問題をより明確にする必要がある場合は、次の回答が役立つ場合があります。

Ajax応答でのJQueryの認識されない式

jQuery + クライアント側テンプレート = "構文エラー、認識できない式"

于 2013-04-19T13:55:33.887 に答える
0

構文エラーは次の場所にある可能性があります。

if ( typeof currentFaqCategories !== 'undefined') {

どちらを読むべきですか:

if ( typeof currentFaqCategories != 'undefined') {
于 2013-04-19T01:00:47.250 に答える