Pasar variables a javascript
Publicado por Francisco (1 intervención) el 22/04/2017 12:45:49
Buenos días,
Tengo el siguiente código js:
Lo que hace es que cuando en el html hay una <div class=noticias_blog> ejecuta un script y carga 8 noticias de un blog. Esto me está generando problemas con masonry. Para solventarlas lo que quiero hacer es quitar el bucle while del js y quiero llamar a cada noticia una a una. Me explico mejor:
En mi html ahora mismo hay esto:
<div class="noticias_blog"></div>
y con este trozo de código consigo que todas las noticias se vean, ahora lo que quiero es lo siguiente:
<div class="noticias">
<div class=noticia 1></div>
<div class=noticia 2></div>
<div class=noticia 3></div>
....
</div>
al llegar a noticia 1 quiero que se ejecute el js y muestre la noticia 1, lo mismo con todas. Es decir, en el js quitaríamos el
while ((i < data.feed.entry.length) && (count<8))
y simplemente invocaríamos a js indicando que i=0, 1, 2...
No se si me entienden, porque creo que me he explicado fatal.
Espero que puedan ayudarme,
Gracias.
Tengo el siguiente código js:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
$(document).ready(function()
{
$.ajax(
{
url: 'http://orueba.blogspot.com.es/feeds/posts/default?alt=json-in-script',
type: 'get',
dataType: "jsonp",
success: function(data)
{
var posturl = "";
var htmlcode = '<ul>';
var newhtmlcode = '';
var tamano_imagen = 700;
var i = 0;
var count= 0;
var fecha="";
while ((i < data.feed.entry.length) && (count<8))
{
for (var j=0; j < data.feed.entry[i].link.length; j++)
{
if (data.feed.entry[i].link[j].rel == "alternate")
{
posturl = data.feed.entry[i].link[j].href;
break;
}
}
if("content" in data.feed.entry[i])
{
var postcontent = data.feed.entry[i].content.$t;
if(typeof(data.feed.entry[i].media$thumbnail) != "undefined")
{
var miniatura = data.feed.entry[i].media$thumbnail.url;
var miniatura = miniatura.replace('s72-c', 's'+ tamano_imagen);
}
else
{
var miniatura = "complementos/js/escudo.jpg";
}
}
if("published" in data.feed.entry[i])
{
var date_published = data.feed.entry[i].published.$t;
var fecha = date_published.split('T');
var yyyy_mm_dd = fecha[0].split('-');
var year = yyyy_mm_dd[0];
var month = yyyy_mm_dd[1];
var day = yyyy_mm_dd[2];
switch (month)
{
case "01":
mes="Enero";
break;
case "02":
mes="Febrero";
break;
case "03":
mes="Marzo";
break;
case "04":
mes="Abril";
break;
case "05":
mes="Mayo";
break;
case "06":
mes="Junio";
break;
case "07":
mes="Julio";
break;
case "08":
mes="Agosto";
break;
case "09":
mes="Septiembre";
break;
case "10":
mes="Octubre";
break;
case "11":
mes="Noviembre";
break;
case "12":
var mes="Diciembre";
break;
}
fecha = day + " de " + mes + " de " + year;
}
else if("summary" in data.feed.entry[i])
{
var postcontent = data.feed.entry[i].summary.$t;
}
else
{
var postcontent = "";
}
var re = /<\S[^>]*>/g;
postcontent = postcontent.replace(re,"");
var posttitle = data.feed.entry[i].title.$t;
//reduce postcontent to 300 characters
if(postcontent.length > 300)
{
postcontent = postcontent.substring(0,300);
postcontent = postcontent+' ...';
}
htmlcode += '</ul>';
newhtmlcode += "<div class='cuadro_noticia'>" +
"<div class='foto_noticia'><img src='"+miniatura+"'></div>" +
"<div class='titular'><h1><a target='_blank' href='"+posturl+"'>"+posttitle+"</a></h1></div>"+
"<div class='fecha'>"+fecha+"</div>" +
"<div class='contenido_noticia'><span>"+postcontent+"</span></div>"+
"<div class='leer_mas'><a target='_blank' class='icono_leer_mas' href='"+posturl+"'>>>Leer más</a></div>"+
"</div>";
i++;
count++;
}
$('.noticias_blog').append(newhtmlcode);
}
});
});
Lo que hace es que cuando en el html hay una <div class=noticias_blog> ejecuta un script y carga 8 noticias de un blog. Esto me está generando problemas con masonry. Para solventarlas lo que quiero hacer es quitar el bucle while del js y quiero llamar a cada noticia una a una. Me explico mejor:
En mi html ahora mismo hay esto:
<div class="noticias_blog"></div>
y con este trozo de código consigo que todas las noticias se vean, ahora lo que quiero es lo siguiente:
<div class="noticias">
<div class=noticia 1></div>
<div class=noticia 2></div>
<div class=noticia 3></div>
....
</div>
al llegar a noticia 1 quiero que se ejecute el js y muestre la noticia 1, lo mismo con todas. Es decir, en el js quitaríamos el
while ((i < data.feed.entry.length) && (count<8))
y simplemente invocaríamos a js indicando que i=0, 1, 2...
No se si me entienden, porque creo que me he explicado fatal.
Espero que puedan ayudarme,
Gracias.
Valora esta pregunta


0