メッセージを動的にしたい場合は、次を使用しますdata-attributes
。
<input class='message-button-' type="submit" data-message="My Message" />
次に、別の JavaScript ファイルで:
// equivalent of $(document).ready(function(){...
$(function(){
// Functionality starts here
$('.message-button').on('click', function(e){
alert($(this).data('message'));
})
});
これで、クラスを持つボタンがクリックされるたびに関数が実行.message-button
され、カスタム属性 data-message を使用してメッセージが表示されます。
お役に立てれば!:)
アップデート:
目立たないように JavaScript を実行することがベスト プラクティスと見なされていることに注意してください。一部の人々はonclick
、例で行ったように属性をまだ使用していると述べていますが、そうしないでください。jquery の.on('click', function(){})
メソッドを使用して、ここで示したようにイベントをバインドします。
クリック アイテムがアンカー タグ<a>
の場合、必要に応じて次のように使用して、href が追跡されないようにすることができますe.preventDefault
。
$('a').on('click', function(e){
e.preventDefault()
})
また、知っておく必要がある場合に備えて、$('.message-button')
は css セレクターを使用して dom 要素を取得しています。有効な CSS セレクターは通常、そこで機能します。
ステップバイステップ
まず、すべてのコードを jQuery が提供する関数にラップする必要があります。この関数は、ドキュメントが JavaScript アクションと dom 操作を処理できるようになるまで待機します。長い形式のバージョンはあります$(document).ready(function(){ /* CODE GOES HERE */ })
が、私が使用したバージョンはショートカット$(function({ /* CODE GOES HERE */ })
です:
$(function(){
})
次に、イベントをボタンにバインドする必要があります。class を指定したので、.message-button
jQuery を使用してその要素を取得し、「クリック」イベントをそれにバインドできます。
$(function(){
// Functionality starts here
$('.message-button').on('click', function(e){
// Code here executes when the input button is clicked
})
});
イベント ハンドラーの内部は、イベントthis
をトリガーした HTML 要素を直接指すように再バインドされます。$() でラップすると、jquery メソッドにアクセスできます。したがって、 $(this) は非常に頻繁に使用されます。jQuery は、要素の.data()
任意のメソッドにアクセスするメソッドを提供data-*
し、値を提供します。これがalert()
が行っていることです。
$(function(){
// Functionality starts here
$('.message-button').on('click', function(e){
alert($(this).data('message'));
})
});