jQuery를 사용하여 앵커 태그의 HTML 텍스트를 전환하는 방법은 무엇입니까? 클릭하면 텍스트가 Show Background
& 사이를 번갈아 가며 Show Text
다른 div가 페이드 인 및 아웃 되는 앵커를 원합니다 . 이것이 내 최선의 추측이었습니다.
$(function() {
$("#show-background").click(function () {
$("#content-area").animate({opacity: 'toggle'}, 'slow');
});
$("#show-background").toggle(function (){
$(this).text("Show Background")
.stop();
}, function(){
$(this).text("Show Text")
.stop();
});
});
답변
$(function() {
$("#show-background").click(function () {
$("#content-area").animate({opacity: 'toggle'}, 'slow');
});
var text = $('#show-background').text();
$('#show-background').text(
text == "Show Background" ? "Show Text" : "Show Background");
});
토글은 요소를 숨기거나 표시합니다. 두 개의 링크가 있고 둘 중 하나를 클릭 할 때 토글하여 토글을 사용하여 동일한 효과를 얻을 수 있습니다.
답변
가장 아름다운 대답은 …
이 함수로 jQuery 확장하기 …
$.fn.extend({
toggleText: function(a, b){
return this.text(this.text() == b ? a : b);
}
});
HTML :
<button class="example"> Initial </button>
사용하다:
$(".example").toggleText('Initial', 'Secondary');
초기 HTML 텍스트가 약간 다른 경우 (추가 공백, 마침표 등) 논리 (x == b? a : b)를 사용 했으므로 의도 된 초기 값
(또한 HTML 예제에서 의도적으로 공백을 남긴 이유도 있습니다 😉
Meules [아래]가 주목 한 HTML 토글 사용의 또 다른 가능성은 다음과 같습니다.
$.fn.extend({
toggleHtml: function(a, b){
return this.html(this.html() == b ? a : b);
}
});
HTML :
<div>John Doe was an unknown.<button id='readmore_john_doe'> Read More... </button></div>
사용하다:
$("readmore_john_doe").click($.toggleHtml(
'Read More...',
'Until they found his real name was <strong>Doe John</strong>.')
);
(또는 이와 비슷한 것)
답변
문제는 나야 미안해! 동기화되지 않았지만 이것은 HTML 텍스트가 잘못된 방식이기 때문입니다. 첫 번째 클릭에서 div는 페이드 아웃되고 텍스트는 “Show Text”라고 표시됩니다.
내가 묻기 전에 다음에 더 철저히 확인하겠습니다!
내 코드는 다음과 같습니다.
$(function() {
$("#show-background").toggle(function (){
$("#content-area").animate({opacity: '0'}, 'slow')
$("#show-background").text("Show Text")
.stop();
}, function(){
$("#content-area").animate({opacity: '1'}, 'slow')
$("#show-background").text("Show Background")
.stop();
});
});
도와 주셔서 다시 한 번 감사드립니다!
답변
@Nate의 답변 개선 및 단순화 :
jQuery.fn.extend({
toggleText: function (a, b){
var that = this;
if (that.text() != a && that.text() != b){
that.text(a);
}
else
if (that.text() == a){
that.text(b);
}
else
if (that.text() == b){
that.text(a);
}
return this;
}
});
로 사용:
$("#YourElementId").toggleText('After', 'Before');
답변
jQuery.fn.extend({
toggleText: function (a, b){
var isClicked = false;
var that = this;
this.click(function (){
if (isClicked) { that.text(a); isClicked = false; }
else { that.text(b); isClicked = true; }
});
return this;
}
});
$('#someElement').toggleText("hello", "goodbye");
텍스트 토글 만 수행하는 JQuery 용 확장입니다.
JSFiddle : http://jsfiddle.net/NKuhV/
답변
var el = $('#someSelector');
el.text(el.text() == 'view more' ? 'view less' : 'view more');
답변
그냥 쌓아 두는 게 어때요 ::
$("#clickedItem").click(function(){
$("#animatedItem").animate( // );
}).toggle( // <--- you just stack the toggle function here ...
function(){
$(this).text( // );
},
function(){
$(this).text( // );
});