在Joomla中,我在语言之间切换,不使用国家标志作为我所使用的语言的指示符,而是使用jQuery的replaceWith()方法将文本从英语切换到南非语。
我遇到的问题是,在第一次单击“英语”时,将其更改为南非荷兰语,该链接不起作用。但是当它需要回来时,它确实适用于切换。
请欣赏帮助。以下是我认为应该如何运作的逻辑:
jQuery(document).ready(function($) {
$(".item48").toggle(
function () {
$(this).replaceWith("<li class='active item48' id='current'><a href='index.php?lang=af'><span>English</span></a></li>");
},
function () {
$(this).replaceWith("<li class='active item48' id='current'><a href='index.php?lang=en'><span>Afrikaans</span></a></li>");
}
);
答案 0 :(得分:1)
您正在替换具有click
处理程序的元素(.toggle()
是click
处理程序,而您当前正在丢失它),但您实际上只需要更改链接内部,使用.html()
,如下所示:
jQuery(document).ready(function($) {
$(".item48").toggle(
function () {
$(this).html("<a href='index.php?lang=af'><span>English</span></a>");
},
function () {
$(this).html("<a href='index.php?lang=en'><span>Afrikaans</span></a>");
}
);
});
答案 1 :(得分:1)
那是因为事件处理程序不能保持原样。您可以使用live
作为替代方法,但更好的方法是更改href和文本。
jQuery(document).ready(function($) {
$(".item48").toggle(
function () {
$('a', this).attr('href', 'index.php?lang=en').find('span').text('English')
},
function () {
$('a', this).attr('href', 'index.php?lang=af').find('span').text('Afrikaans')
}
);
或者改为使用$(this).html('HTML HERE')
。