質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

Q&A

解決済

1回答

18406閲覧

TypeScriptでボタンにイベントを追加したい

TomoakiKurata

総合スコア46

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

0グッド

0クリップ

投稿2016/03/26 14:26

編集2016/03/26 23:10

はじめまして。

VisualStudioからTypeScriptのプロジェクトを新規作成

<div id="content"> <button style="width:100%;height:100px;" type="button" id="OnHenkanClick">変換</button> </div>

最初のcontentの中にボタンを作成

function HenkanClick() {
alert("ですね");
}

class Greeter {
element: HTMLElement;
span: HTMLElement;
timerToken: number;
ele1: HTMLButtonElement;

constructor(element: HTMLElement) { this.element = element; this.ele1 = <HTMLButtonElement>document.getElementById("OnHenkanClick"); this.ele1.onclick = <Event:MouseEvent> HenkanClick();

上記で
ev: MouseEvent) => any' に割り当てることはできません。
とビルド前にエラーが発生します。
TypeScriptのクラスのなどをまだ理解していません
どのように書けばいいのでしょうか?

追記
jsファイルの中を見てみました。

function HenkanClick() {
alert("ですね");
}
var Greeter = (function () {
function Greeter(element) {
this.element = element;
this.ele1 = document.getElementById("OnHenkanClick");
this.ele1.onclick = ;

あ、TypeScriptのクラスのnewをファンクションのnewに置き換えてるのか
この場合、onclickに正しく入力するにはどうかけばいいのかな

イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

こんにちは。

this.ele1.onclick = <Event:MouseEvent> HenkanClick();

this.ele1.onclick = HenkanClick;としたらどうでしょう。

投稿2016/03/26 15:35

Tak1wa

総合スコア4791

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TomoakiKurata

2016/03/26 16:00

お返事ありがとうございます! 実行時に ですね! と表示されてしまい。 ev: MouseEvent) => any' に割り当てることはできません。 ビルド前はエラーが表示されたままです。
Tak1wa

2016/03/26 17:12

私のほうでは上記の対応でうまくいってます。 現在のtsファイルをもう少し提示して頂ければアドバイスできるかもしれません。
TomoakiKurata

2016/03/26 23:08

Tak1wa様、わざわざ試していただいてありがとうございます! function HenkanClick() { alert("ですね"); } class Greeter { element: HTMLElement; span: HTMLElement; timerToken: number; ele1: HTMLButtonElement; constructor(element: HTMLElement) { this.element = element; this.ele1 = <HTMLButtonElement>document.getElementById("OnHenkanClick"); this.ele1.onclick = HenkanClick(); this.element.innerHTML += "The time is: "; this.span = document.createElement('span'); this.element.appendChild(this.span); this.span.innerText = new Date().toUTCString(); } } window.onload = () => { var el = document.getElementById('content'); var greeter = new Greeter(el); }; 全TSになります。
Tak1wa

2016/03/27 05:37

HenkanClickの後の()は不要です。 私のTSをのせておきます。 class Greeter { element: HTMLElement; span: HTMLElement; timerToken: number; ele1: HTMLButtonElement; constructor(element: HTMLElement) { this.element = element; this.element.innerHTML += "The time is: "; this.span = document.createElement('span'); this.element.appendChild(this.span); this.span.innerText = new Date().toUTCString(); this.ele1 = <HTMLButtonElement>document.getElementById("OnHenkanClick"); this.ele1.onclick = HenkanClick; } start() { this.timerToken = setInterval(() => this.span.innerHTML = new Date().toUTCString(), 500); } stop() { clearTimeout(this.timerToken); } } window.onload = () => { var el = document.getElementById('content'); var greeter = new Greeter(el); greeter.start(); }; function HenkanClick() { alert("ですね!"); }
TomoakiKurata

2016/03/27 14:20

ありがとうございます! 動きました! 昨日から悩みっぱなしでした!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問