对我来说是个真正的问题,因为我不知道该如何解决它。
我编写的 jQuery 脚本应该在“粘贴”操作时获取输入值并通过 ajax 传递到 codeigniter 控制器。
它实际上运行良好,但仅当我第二次(及更多次)粘贴值时才有效。如果我将 on("paste") 更改为某些 div 或其他 DOM 元素的 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 );
}
});
});
希望能得到任何帮助。
编辑:再给一个提示。
在这个特定的脚本中,val()实际上是在粘贴操作之前获取值。 如果我在此输入一些内容,然后将其删除并粘贴其他内容,则实际上会将我写入的值传递给控制器,而不是我粘贴的值。
编辑2: 好的,我相信这是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 中。但是第一次粘贴操作时它并不起作用。在第二次粘贴操作后,它实际上是有效的。
编辑3:我的朋友给了我一个提示。 on("paste") 在“粘贴”操作和实际完成粘贴之前就能正常工作。如果有人能给我一个提示,如何设置超时以在粘贴之后获取值,那么我就可以继续进行。