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');
})
})
}
答案 0 :(得分:0)
你的JSFiddle中有很多错误导致它无法正常工作:
以正确的方式包含jQuery
正如Phil在评论中所说,你不包括jQuery。然后你把它添加到外部资源,
但这不是Textscript的正确位置 - 您需要将其包含在Typescript设置中:单击
设置图标和选择
" Frameworks& Sons下的正确jQuery版本扩展" (See here)
您应该实现界面
您已声明Person
界面但尚未实施
不要将click()
代码放在函数中
此代码包含点击的事件处理程序,因此它根本不在下面。整个jQuery块应该在函数之外,这样它实际上可以处理你的点击!
您的欢迎函数应返回值
您正在使用其返回值来设置正文的innerHTML。因为函数没有返回任何内容,所以你得到一个" undefined"错误。取消注释return "Hello..."
即可。
不要替换整个 body
HTML
第document.body.innerHTML = greeter(user);
行正在使用greeter
的返回值替换整个正文,包括您的标签。您需要添加值。
有几种方法可以达到#5,这超出了你提出的问题的范围,但我会给你一些指示:
append()
,appendTo()
,insertBefore()
,prepend()
首先让它与Typescript分开工作,以确保它有效并且您了解发生了什么。如果你一次只采取一个步骤而不是一起尝试并最终导致多个失败点,这样可以更容易地调试一些东西,比如这次:-)如果你在尝试放弃之后遇到问题,使用jquery
标记
答案 1 :(得分:0)
我删除了jQuery的外部链接,并更改了以下行:
document.body.innerHTML = greeter(user);
只是
greeter(user);
greeter函数不会返回任何内容,这就是为什么在框中打印undefined
。
请参阅this更新的小提琴。