打字稿里面的标签代码不适合小提琴

时间:2017-08-25 00:26:14

标签: javascript jquery html typescript

  • 我是打字稿的新手。
  • 我正在尝试将我的标签代码包含在打字稿中并运行它但它没有运行。
  • 你能告诉我如何解决它。
  • 在下面提供我的代码

https://jsfiddle.net/z4vo5u5d/400/

function greeter(person : Person) {
    //return "Hello, " + person.firstname + " " + person.lastname;

    $(document).ready(function(){

    $('ul.tabs li').click(function(){
        var tab_id = $(this).attr('data-tab');

        $('ul.tabs li').removeClass('current');
        $('.tab-content').removeClass('current');

        $(this).addClass('current');
        $("#"+tab_id).addClass('current');
    })

})
}

2 个答案:

答案 0 :(得分:0)

你的JSFiddle中有很多错误导致它无法正常工作:

  1. 以正确的方式包含jQuery
    正如Phil在评论中所说,你不包括jQuery。然后你把它添加到外部资源, 但这不是Textscript的正确位置 - 您需要将其包含在Typescript设置中:单击 设置图标和选择 " Frameworks& Sons下的正确jQuery版本扩展" (See here

  2. 您应该实现界面
    您已声明Person界面但尚未实施

  3. 不要将click()代码放在函数中
    此代码包含点击的事件处理程序,因此它根本不在下面。整个jQuery块应该在函数之外,这样它实际上可以处理你的点击!

  4. 您的欢迎函数应返回值
    您正在使用其返回值来设置正文的innerHTML。因为函数没有返回任何内容,所以你得到一个" undefined"错误。取消注释return "Hello..."即可。

  5. 不要替换整个 body HTML
    document.body.innerHTML = greeter(user);行正在使用greeter的返回值替换整个正文,包括您的标签。您需要添加值。

  6. 有几种方法可以达到#5,这超出了你提出的问题的范围,但我会给你一些指示:

    首先让它与Typescript分开工作,以确保它有效并且您了解发生了什么。如果你一次只采取一个步骤而不是一起尝试并最终导致多个失败点,这样可以更容易地调试一些东西,比如这次:-)如果你在尝试放弃之后遇到问题,使用jquery标记

    发布新问题

答案 1 :(得分:0)

我删除了jQuery的外部链接,并更改了以下行:

document.body.innerHTML = greeter(user);

只是

greeter(user);

greeter函数不会返回任何内容,这就是为什么在框中打印undefined

请参阅this更新的小提琴。