سؤال

وأنا أحاول أن استخدام هذا الرمز للتبديل النص على الرابط التالي:

var showText="<span>Open</span> &darr;";
var hideText="<span>Close</span> &uarr;";
$('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> &darr;";
var hideText="<span>Close</span> &uarr;";
$('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:

<اقتباس فقرة>   

وعندما يتم النقر على عنصر المتطابقة،   يتم تشغيل وظيفة محددة الأولى،   عند النقر عليها مرة أخرى، والثاني هو   مطرود. تستمر كل النقرات اللاحقة   لتدوير من خلال الوظيفتين.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top