JSON массив href как переменная в jQuery - PullRequest
0 голосов
/ 30 марта 2012

У меня есть функция getJSON, которая преобразует результаты в HTML-шаблон для отображения в виде списка, который содержит разные гиперссылки в каждом элементе списка. Мне нужно переопределить обычную функцию html ссылки, чтобы она не открывала новую страницу, а загружалась в определенный раздел с помощью метода load (), расположенного в моей функции navClickListener ().

Если я добавлю фиктивный URL-адрес в var gotoURL = '';//<--..AND GET THE ITEMS LINK INTO THIS VAR..., он будет работать как запланировано, но мне нужно получить фактические URL-адреса из элементов массива.

Я не могу придумать, как это сделать. Можете ли вы просмотреть мои фрагменты и обратить внимание на встроенные комментарии во всех CAPS.

Спасибо за помощь.

function loadNav(url, container, appendE) {
        $.getJSON(url, function(data){

            $.each(data.items, function(){
                var newItem = $('#' + container).clone();
                // Now fill in the fields with the data
                . . . .
                newItem.find("a").attr("href", this.gotoURL);//<--PREVENT NORMAL FUNCTION...
                // And add the new list item to the page
                newItem.children().appendTo('#' + appendE)
            });
            . . . .
            // Click listener for navigation items
            var target = data.targetKey;
            var gotoURL = '';//<--..AND GET THE ITEMS LINK INTO THIS VAR...
            navClickListener(appendE, target, gotoURL);
        });
    };

    /* ========== Navigation click listener function ============= */   
    function navClickListener(appendE, target, gotoURL) {
        $('#' + appendE).on('click', 'a', function(e){
            e.preventDefault();
             $('#' + target).load(gotoURL);//<--...SO IT GETS INTO HERE??
             . . . .
        });
    };

Ответы [ 2 ]

0 голосов
/ 31 марта 2012

Лучший способ сделать это, как я обнаружил, заключался в том, чтобы сделать встроенный JavaScript в href, который требовал изменить строку gotoURL в базе данных на: javascript:navClickListener('bodyContent', 'http://192.168.1.34/wiki/index.php/Airworthiness_Directive #content'); Это важно, чтобы встроенные символы поддерживали двойные кавычки в концеnewItem.find("a").attr("href", this.gotoURL); выполняется в функции jQuery.getJSON( url [, data] [, success(data, textStatus, jqXHR)] ).Любой другой тип встроенного javaScript не будет работать !!Например1013 * Изменена функция navClickListener () на:

function navClickListener(target, gotoURL) {
    $('#' + target).load(gotoURL);
};

Изменены данные базы данных в gotoURL с:

/wiki/index.php/Airworthiness_Directive #content

на:

javascript:navClickListener('bodyContent', 'http://192.168.1.34/wiki/index.php/Airworthiness_Directive #content');
0 голосов
/ 31 марта 2012

Хорошо, я устал от добавления новых комментариев, которые он продолжал публиковать, когда нажимал ввод.

Я думаю, что я пытался сказать, что я не знаю, откуда взялся ваш gotoURL.Я бы попытался вставить фиктивный URL, чтобы проверить, обновляется ли ваш URL.Если это так, то ваш gotoURL является проблемой.

newItem.find("a").attr("href", "IAmtesting.com")

также здесь есть некоторые скрипач

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