2013-08-16 1 views
1

가장 쉬운 예는 첫 번째 클릭에서 네가 클릭 한 다음 네 번째 클릭에서 네가 "네가 다시 클릭 한 것"과 "네가 몇 번 클릭 한 것"이라는 네버 앤딩이다. .n ... 그리고 다시. "jQuery에서 각 클릭 이벤트에 텍스트 x 번을 추가하는 방법은 무엇입니까?

첫 번째 클릭이 정상입니다. 두 번째는 "다시"를 추가합니다. 각 시간 이후에 "및 다시"를 추가합니다.

내가 증가 인덱스로 그 일을 시도하지만 난 그게 내가 좋아해야 것 같은 문자열을 증식하는 방법을 알아낼 수 없습니다 : 그냥 돌아갑니다

$("button").click(function(){ 
    $(this).text("You clicked" + index++ + ""); 

그러나 물론을 "당신은 클릭 1 "등

답변

1

매우 우아하지,하지만 작동합니다

http://jsfiddle.net/35uHB/

var clickCount = 0; 
$('.theDiv').click(function() { 
    var text = ["You clicked"]; 

    if (clickCount > 0) { 
     text.push(" again"); 
    } 

    for (var i = 1; i < clickCount; i++) 
    { 
     text.push(" and again"); 
    } 
    text.push("!"); 

    clickCount++; 

    $('.result').text(text.join(''));  

}); 
3

$(this).text($(this).text() + " again");

소자의 특성을 얻을 그 속성의 값을 설정 모두에 사용될 수있는 조작

대부분의 jQuery 함수 예 $elem.text()은 현재 텍스트 값을 제공하고 $elem.text(value)value으로 설정합니다.

3
$(document).ready(function(){ 
var c = 0; 
    $('button').click(function(){ 
     if(c == 0) {$(this).append(' again');c++;} 
     else $(this).append(' and again') 
    }) 

}) 

$(this).text()을 두 번 사용하는 대신 제안합니다. :)

JSFIDDLE DEMO

+0

+1 추가] 내가 처음으로보고 하였다 무엇을하고에 좋은 방법이 될 것입니다 그러나, 제이슨 피의 대답은 내가 원하는 것을 정확하게하는 것처럼 보입니다. –

4

간단한 방법은

var myText = ['You clicked', ' again', ' and again']; 
var ptr = 0; 
$("button").click(function() { 
    $(this).text(function (i, v) { 
     return (ptr == 0)?myText[ptr]:(v + myText[ptr]); 
    }); 
    if (ptr < myText.length - 1) ptr++; 
}); 

해당 배열을 사용하여, 당신은 당신이 추가하는 방법을 여러 가지 메시지를 제어 할 수 있습니다 .. 아래에 그것을 사용하여 같은 배열을 가지고있다 .

데모 :http://jsfiddle.net/x66sd/

+0

나는 이것이 OP가 요청하는 것이라고 생각합니다. –

+0

지금까지 새 편집 내용을 보지 못했습니다. 세 번째 클릭 이후에 undefined가 반환되기 전에는 이제는 작동하는 것처럼 보입니다. 감사. –

+0

@o_O 그래, 방금 테스트를 거치지 않고 코드를 작성하고 몇 가지 중요한 사항을 놓쳤습니다. 데모를 만들면서 그들을 잡았습니다. :) –

관련 문제