Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.02.2015, 21:27
Новичок на форуме
Отправить личное сообщение для JleHuH213 Посмотреть профиль Найти все сообщения от JleHuH213
 
Регистрация: 02.07.2014
Сообщений: 5

установить href атрибута используя Attr()
Здравствуйте, помогите исправить код. Нужно в строке 109

' <a href="'+(item.origLink || item.link[0].href || item.link)+'" target="_blank">[читать]</a>'


установить href атрибута используя Attr().

/* Configuration: */
 
var tabs = {
    "@vgs" : {
        "feed"      : "",
        "function"  : rss
    }
}
 
var totalTabs;
$(document).ready(function(){
    
    totalTabs=0;
    $.each(tabs,function(){totalTabs++;})
    
 
    $('#feedWidget').show().mouseleave(function(){
        $('.dropDownList').remove();
        $('#activeTab').removeClass('hover');
 
    }).mouseenter(function(){
        
        if(totalTabs>1) $('#activeTab').addClass('hover');
        
    });
    
    $('#activeTab').click(showDropDown);
 
    $('.dropDownList div').live('click',function(){
        
        showDropDown();
        showTab($(this).text());
    });
    
    showTab('@vgs');
    
});
 
 
function showTab(key)
{
    var obj = tabs[key];
    if(!obj) return false;
    
    var stage = $('#tabContent');
    
    var query = "select * from feed where url='"+obj.feed+"' LIMIT 10";
    
    var url = "https://***/v1/public/yql?q="+encodeURIComponent(query)+"&format=json&callback=?";
    
    
    $.getJSON(url,function(data){
 
        stage.empty();
 
        $.each(data.query.results.item || data.query.results.entry,function(){
            try{
                stage.append(obj['function'](this));
                
            }
            catch(e){
                var f_name =obj['function'].toString().match(/function\s+(\w+)\(/i);
                if(f_name) f_name = f_name[1];
                
                stage.append('<div>There is a problem with your '+f_name+ ' function</div>');
                return false;
            }
        })
    });
    
    $('#activeTab').text(key);
}
 
function showDropDown()
{
    if(totalTabs<2) return false;
    
    if($('#feedWidget .dropDownList').length)
    {
        $('.dropDownList').slideUp('fast',function(){ $(this).remove(); })
        return false;
    }
    
    var activeTab = $('#activeTab');
    
    var offsetTop = (activeTab.offset().top - $('#feedWidget').offset().top )+activeTab.outerHeight() - 5;
    
    var dropDown = $('<div>').addClass('dropDownList').css({
 
            'top'   : offsetTop,
            'width' : activeTab.width()
    
    }).hide().appendTo('#feedWidget')
    
    $.each(tabs,function(j){
        if(j==activeTab.text()) return true;
        
            $('<div>').text(j).appendTo(dropDown);
    })
    
    dropDown.slideDown('fast');
}
 
 
function rss(item)
{
    return $('<div>').html(
            formatString(item.title.content || item.title)+
            ' <a href="'+(item.origLink || item.link[0].href || item.link)+'" target="_blank">[читать]</a>'
    );
}
 
function formatString(str)
{
    str = str.replace(/<[^>]+>/ig,'');
    str=' '+str;
    return str;
}

Последний раз редактировалось JleHuH213, 04.02.2015 в 21:45.
Ответить с цитированием
  #2 (permalink)  
Старый 04.02.2015, 21:32
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

JleHuH213,
это кнопа для js
Пожалуйста, отформатируйте свой код!
Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
  #3 (permalink)  
Старый 04.02.2015, 22:20
Новичок на форуме
Отправить личное сообщение для JleHuH213 Посмотреть профиль Найти все сообщения от JleHuH213
 
Регистрация: 02.07.2014
Сообщений: 5

Спасибо, поправил!
Ответить с цитированием
  #4 (permalink)  
Старый 04.02.2015, 22:36
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

JleHuH213,
а в чём смысл смены установки?
Ответить с цитированием
  #5 (permalink)  
Старый 04.02.2015, 22:41
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

JleHuH213,
$('<a/>', {
    href: item.origLink || item.link[0].href || item.link,
    target: '_blank',
    text: '[читать]'
})
Ответить с цитированием
  #6 (permalink)  
Старый 05.02.2015, 00:33
Новичок на форуме
Отправить личное сообщение для JleHuH213 Посмотреть профиль Найти все сообщения от JleHuH213
 
Регистрация: 02.07.2014
Сообщений: 5

Сообщение от рони Посмотреть сообщение
JleHuH213,
$('<a/>', {
    href: item.origLink || item.link[0].href || item.link,
    target: '_blank',
    text: '[читать]'
})
Смысл в том что учусь использовать, но что то не выходит. По вашему варианту вместо положенной ссылки "[читать]" выводит "[object Object]"
Ответить с цитированием
  #7 (permalink)  
Старый 05.02.2015, 00:53
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

JleHuH213,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
   </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
$(function() {
    function formatString(str) {
        str = str.replace(/<[^>]+>/ig, "");
        str = " " + str;
        return str
    }
    var item = {
        link: "http://javascript.ru/",
        title: "123 456"
    };
    var temp = $("<div>", {
        html: $("<a/>", {
            href: item.origLink || item.link[0].href || item.link,
            target: "_blank",
            text: "[читать]"
        })
    });
    $("<div>", {
        html: formatString(item.title.content || item.title) + temp.html()
    }).appendTo("body")
});


  </script>
</head>

<body>
</body>

</html>
Ответить с цитированием
  #8 (permalink)  
Старый 05.02.2015, 00:59
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

JleHuH213,
или так
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
   </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
$(function() {
    function formatString(str) {
        str = str.replace(/<[^>]+>/ig, "");
        str = " " + str;
        return str
    }
    var item = {
        link: "http://javascript.ru/",
        title: "123 456"
    };
    var temp = $("<a/>", {
            href: item.origLink || item.link[0].href || item.link,
            target: "_blank",
            text: "[читать]"
        })

    $("<div>", {
        html: formatString(item.title.content || item.title)
    }).append(temp).appendTo("body")
});


  </script>
</head>

<body>
</body>

</html>
Ответить с цитированием
  #9 (permalink)  
Старый 05.02.2015, 14:36
Новичок на форуме
Отправить личное сообщение для JleHuH213 Посмотреть профиль Найти все сообщения от JleHuH213
 
Регистрация: 02.07.2014
Сообщений: 5

Спасибо большое ваш код очень помог мне и я решил проблему!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск