سؤال
وأنا أحاول أن استخدام هذا الرمز للتبديل النص على الرابط التالي:
var showText="<span>Open</span> ↓";
var hideText="<span>Close</span> ↑";
$('h1').before('<a href="javascript:;" id="hc_toggle_close">' + showText + '</a>');
$('#hc_toggle_close').click(function () {
$('#hc_toggle_close:contains("Open")').html(hideText);
$('#hc_toggle_close:contains("Close")').html(showText);
});
ولكن لا يعمل! وكذلك إذا ... بناء آخر المعتاد. هل يمكن لشخص يرجى الإشارة لي ما هو الخطأ هنا. شكرا!
المحلول
استخدم وظيفة toggle
المساعد:
var showText="<span>Open</span> ↓";
var hideText="<span>Close</span> ↑";
$('h1').before('<a href="javascript:;" id="hc_toggle_close">' + showText + '</a>');
$('#hc_toggle_close').toggle(
function () {
$('#hc_toggle_close').html(hideText);
},
function () {
$('#hc_toggle_close').html(showText);
}
);
ومن وثائق toggle
:
وعندما يتم النقر على عنصر المتطابقة، يتم تشغيل وظيفة محددة الأولى، عند النقر عليها مرة أخرى، والثاني هو مطرود. تستمر كل النقرات اللاحقة لتدوير من خلال الوظيفتين.
اقتباس فقرة>لا تنتمي إلى StackOverflow