私にはそれを解決する手がかりがないので、私にとって本当の取引の問題。
私が書いたjQueryスクリプトは、「貼り付け」アクションの入力値を取得し、それをajaxによってcodeigniterコントローラーに渡す必要があります。
実際には正常に機能しますが、2回目(およびそれ以降)の値を貼り付けた場合に限ります。いくつかのdivまたは他のDOM要素に対してon( "paste")をon( "click")に変更すると、これも正常に機能します。
脚本:
<script type="text/javascript">
$("#link").on("paste", function(){
$("#thumbs").empty().html("<p>loading</p>");
var postData = {
'url' : $("#link").val()
};
$.ajax({
type: "POST",
url: "/thumb/ajax/",
data: postData , //assign the var here
success: function(msg){
$("#thumbs").html( "Data Saved: " + msg );
}
});
});
どんな助けでもいただければ幸いです
編集:もう1つのヒント。
この特定のスクリプトのval()は、実際には貼り付けアクションの前に値を取ります。この入力に何かを書き込んだら、それを削除して貼り付けると、貼り付けた値ではなく、実際に書き込んだ値がコントローラーに渡されます。
EDIT2:OK、それは貼り付けに関するjQueryの問題だと確信しています。
<script type="text/javascript">
$("#link").on("paste", function(){
$("#thumbs").empty().html("<p>loading</p>");
var postData = {'url' : $("#link").val() };
$("#thumbs").html($("#link").val());
});
</script>
このスクリプトは、入力からdiv#thumbsに値を追加する必要があります。最初の貼り付けアクションではありません。第二に、それは実際に機能します。
EDIT3:私の友人は私にヒントをくれました。on( "paste")は、 "paste"アクションで、実際に貼り付けが行われる前に機能します。誰かが私に、貼り付け後に値を取得するためのタイムアウトを作成する方法のヒントを教えてくれたら、次に進むことができます。