2011-07-26 18 views
0

私は本を読みましたが、私はそれを拒否しましたが、結果は得られません。私はMVCアプリケーションを持っている、と私は、マスターページにjqueryの参照を置くだけでなく、そのような登録の初期化コード:そのコードが行うことに意味される何asp.net mvcでjqueryの作業を行うにはどうすればいいですか

<script src="~/Scripts/jquery-1.4.1.js" type="text/javascript"></script> 
<script src="~/Scripts/jquery-1.4.1-vsdoc.js" type="text/javascript"></script> 
<title><asp:ContentPlaceHolder ID="TitleContent" runat="server" /></title> 
<link href="../../Content/Site.css" rel="stylesheet" type="text/css" /> 

<script> 
    $(function() { 
     $("#txt").click(function() { 
      var $ctrl = $('<input/>').attr({ type: 'text', name: 'text', value: 'text' }).addClass("text"); 
     $("#holder").append($ctrl); 
    }); 

}); 
</script> 

はにテキストボックスを追加することですIDが "txt"のボタンが押されたときにidが "holder"のdiv。私はこのコードをどこかからオンラインで入手し、そのページから正常に動作します。私はもうそれを見つけることができない、または私はリンクを含めるだろう。 は、私はこのようなボタンを作った:ボタンを押したときに

<input type="button" id="txt" value="Add TextBox" /> 
<div id="holder"> this is the holder </div> 

しかし、絶対に何も起こりません。私が知りたいのは、JQUERY CODEがどこに行きますか?すべての機能をマスターページの先頭に置いていますか?すべてのaspxページに入れますか?私はそれを別のファイルに入れますか?もしそうなら、どこでどのように参照するのですか?すべての本は私には意味をなさない、私はちょうどjqueryで始まり、このこぶは私にそれに入るのをやめさせてくれるものです。 jqueryコードはどこに行きますか?助けてください。

答えて

-1

まず、jQueryコードが実行されない理由は、~がブラウザに意味をなさないためです。あなたは「、その向こう

// Using the ascx view engine 
<script src="<%: Url.Content("/Scripts/jquery-1.4.1.js") %>" type="text/javascript"></script> 
// Using the razor view engine 
<script src="@Url.Content("/Scripts/jquery-1.4.1.js")" type="text/javascript"></script> 

:これはどちらか絶対参照に切り替える必要がある。

<script src="/Scripts/jquery-1.4.1.js" type="text/javascript"></script> 

..またはそれは、サーバー側を実行するコードを使用して、絶対参照に変換する必要がありますjQueryコードをどこに置いても大丈夫です。私が個人的に見つけた最高の戦略は、できるだけ多くのjavascriptを静的なjavascriptファイルに入れて頭の中で参照されるようにすることです。 javascriptとマークアップを分離しておくことに加えて(これはもっとうまく見えます)、静的なコードに多くの静的なコードを入れてブラウザでキャッシュすることができるという利点があります。それぞれの要求に応じて配線します。

PS:-vsdoc.jsファイルはintellisenseのためのものであり、実際のマークアップには含めないでください。 VS.NETは自動的にその存在を検出し、対応するjqueryファイルを使用していることがわかっているときにVS.NETを使用します。

+0

はあなたに感謝!あなたのコードは実際に私のアプリケーションで動作しませんでした(私は "CS1012:文字リテラルに多すぎる文字"を実行したときにこのエラーが出ましたが、私はこれを使用してリファレンスのフォーマットを変更しなければならないことに気付きました: src = "http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js" type = "text/javascript">とうまくいきました。ありがとう – dumbfreak

+0

@ user858455:クールで、Googleのホストバージョンを使用するとさらに優れています。 "文字数が多すぎます..."というメッセージは、二重引用符ではなく一重引用符を使用していたことを示しています。 – StriplingWarrior

0
<script src="@Url.Content("~/Scripts/jquery-1.4.1.js")" type="text/javascript"></script> 
0

はここを参照してください:それは正常に動作しますhttp://jsfiddle.net/UukmR/1/

すべてのスクリプトの参照が正しいことを確認し、マスターページのヘッドにそれらを含めます。

-1

あなたのコードではないはずです。

<script> 
    $(function() { 
     $("#txt").click(function() { 
      var $ctrl = $('<input/>').attr({ type: 'text', name: 'text', value: 'text' }).addClass("text"); 
     $("#holder").append($ctrl); 
    }); 

}); 
</script> 

はjQueryの$(ドキュメント).ready(内に含まれているが)を呼び出しますか?

ので、このような何かを試してみてください。

<script> 
$(document).ready(function(){ 
    $("#txt").click(function() { 
     var $ctrl = $('<input/>').attr({ type: 'text', name: 'text', value: 'text' }).addClass("text"); 
     $("#holder").append($ctrl); 
    }); 
}); 
</script> 
+0

-1 '$(function(){});'は '$(document).ready(function(){});'の省略形です。したがって、最初のコードブロックは2番目のコードブロックに相当します。 –

関連する問題