1

我正在使用 jQuery 语言切换器,下面是工作脚本。

<script type="text/javascript">
    window.lang = new jquery_lang_js();
    $(document).ready(function() {  
        window.lang.run();
    });
</script>

<a href="javascript:window.lang.change('jp');">Switch to Japanese</a>

但是,内联 JavaScript 会导致与页面中的其他 jQuery 脚本发生冲突。

我试图在下面创建一个这样的函数,但显然,这是不正确的。通过按照建议在准备好的文档中移动 .click 函数,它现在可以工作了。

<script type="text/javascript">
window.lang = new jquery_lang_js();
$(document).ready(function() {  
    window.lang.run();
});
$(".jp").click(function (e) {
    e.preventDefault();      
    var $this = $(this);        
    var id = $this.attr('href');
    window.lang.change('jp');
});

</script>

<a href="#" class="jp">Switch to Japanese</a>

此外,除了“jp”之外,我还有其他类,所以这甚至不是正确的方法,但我试图首先摆脱内联 javascript;我无论如何都没有做到。

有人可以帮忙吗?

//////////////////下面现在可以工作了////////////////

我想现在我的问题是,我怎样才能重写它,这样我就不会重复这样的代码?

<script type="text/javascript">
window.lang = new jquery_lang_js();
$().ready(function () {
    window.lang.run();
 $(".jp").click(function (e) {
 e.preventDefault();      
        var $this = $(this);        
    var id = $this.attr('href');
    window.lang.change('jp');


 $(".en").click(function (e) {
 e.preventDefault();      
        var $this = $(this);        
    var id = $this.attr('href');
    window.lang.change('en');


});


});


</script>

<a href="#" class="jp">Switch to Japanese</a>
<a href="#" class="en">Switch to English</a>

. . . 更多课程

有比这样写更好的方法,对吗?

4

1 回答 1

2

您应该.click()移动.ready(). 现在,JavaScript 在锚加载之前运行,所以$('.jp')没有找到它。

另外,不要$this用作变量;这不是 PHP,而且您也没有将它用于任何重要的事情。

于 2013-04-11T17:16:45.603 回答