.article
의 특정 하위 항목에 대한 클릭 기능을 추가하려고합니다.이 기능은 요청에서받은 pageid
에 특정 wikipedia
링크베이스를 표시합니다. 그러나 모든 .article
은 같은 페이지를 가리 킵니다.jQuery nth-child는 첫 번째 요소 만 선택합니다
HTML :
<section id="body-article">
<div id="body-container">
</div>
</section>
자바 스크립트 (jQuery를)
function SendRequest(searchEntry){
$.ajax({
url: `https://en.wikipedia.org/w/api.php?action=query&list=search&format=json&srsearch=${searchEntry}`,
type: 'GET',
dataType: 'jsonp',
headers: {'Api-User-Agent': 'WikiReader/0.1.0'}
}).done(function(data, status) {
console.log(data);
GenerateArticle(data);
}).fail(function(data, status) {
console.log("ERROR! " + status);
});
}
function GenerateArticle(data){
//shows all the article in a div
var totalArticleLength = data.query.search.length;
for(var i=0;i<totalArticleLength;i++){
var title= data.query.search[i].title;
var pageid=data.query.search[i].pageid;
var snippet=data.query.search[i].snippet;
//responsible for showing single data
CreateSingleArticle(title,pageid,snippet);
// PROBLEM IS WITH THE BELOW LINE
$(`.article:nth-child(${i+1})`).on("click",function(){
window.open(`https://en.wikipedia.org/?curid=${pageid}`, 'Wikipedia', 'window settings');
})
}
}
function CreateSingleArticle(title,pageid,snippet){
//creates a individual data
html =
`<div class="article">
<div class="side-bar"></div>
<div class="article-container">
<div class="article-header">
${title}
</div>
<div class="snippet">
${snippet}
</div>
</div>
</div>`
$("#body-container").append(html);
}
: https://stackoverflow.com/questions/4091765/assign-click-handlers-in-for-loop –
그것은 루프 내에서 범위 변수로 가능합니다 : https : //로 jsfiddle .net/amtb4t2n/ –