2017-01-19 4 views
0

私は以下のコードスニペットを持っています。 var alerttや可能な方法を再利用できますか?私は以下のコードで再利用しようとしましたが、動作しませんでした。私はまたalertt();を試みるが、コンソールはUncaught TypeError: alertt is not a functionと言う。このコードを再利用するには? javascriptで新しいことを学びたい

$("#click").click(function(){ 
 
alertt; 
 
}) 
 

 
var alertt = $(function(){ 
 
    alert("Message"); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button id ="click"> 
 
Click me 
 
</button>

誰かがそれを理解してほしいです。新しいものを学びたい

+0

':あなたも、単に負荷にclick()イベントを発生させる可能性が

$(function() { $("#click").click(alertt); // on click alertt(); // on load }); var alertt = function() { alert("Message"); }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <button id ="click">Click me</button>
は、関数を直接呼び出すことを避けるためにvar alertt = function(){alert( 'msg')}; 'それから' $( "#click")。クリック(alertt); ' – haim770

+0

@ haim770あなたの出力を見るためにフィドルで試してください。 – KiRa

+0

@Satpal申し訳ありません私はArkadiuszのコメントのようにそれをテストします。 – KiRa

答えて

2

問題は、明示的な関数ではなく、alerttをdocument.readyイベントハンドラとして作成しているためです。これを修正するには、ロジックを適切に定義された関数内に置き、ロード時およびボタンがクリックされたときに呼び出します。これを試してみてください:

$(function() { 
 
    $("#click").click(alertt).click(); 
 
}); 
 

 
var alertt = function() { 
 
    alert("Message"); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button id ="click">Click me</button>

+0

私が間違っていることは何ですか[ここ](https://jsfiddle.net/2u010eg6/2/)? – KiRa

+0

Fiddleの設定で 'Load type'を 'No wrap-in 'に設定する必要があります:https://jsfiddle.net/2u010eg6/3/ –

+0

ありがとうございました。私は、loadTypeをonDomReadyに変更します – KiRa

関連する問題