克隆jQuery UI datepicker时的问题

我有一个div,其中有一个datepicker。 我用这样的东西来克隆它: mydiv = $(‘#someDiv’); // works fine so far mydiv.find(‘input.datefield’).datepicker(); // clone without the events and insert newDiv = myDiv.clone(false).insertAfter(myDiv); // datepicker won’t re-init if this class is present newDiv.find(‘.hadDatepicker’).removeClass(‘hadDatepicker’); // reinitialize datepicker newDiv.find(‘input.datefield’).datepicker(); 这是我的代码的精简版本。 它工作正常,日历按预期显示在预期的位置。但是当点击日期时, 前一个日期选择器的值会更新..(克隆它的那个)。 我试图在这之前销毁(不存在的)实例: newDiv.find(‘input.datefield’).datepicker(‘destroy’).datepicker(); 没运气 .. 我已经检查了它如何跟踪实例并手动清除数据,如下所示: newDiv.find(‘input.datefield’).data(‘datepicker’, false).datepicker(‘destroy’).datepicker(); 仍然没有运气。 我不明白的是,只有日期选择行为是错误的,其他一切都按预期工作。 我真的不知道现在还要检查什么..

ajax响应后未更新的值

我通过ajax将一些表单数据发送到同一页面中的php脚本。 PHP必须处理数据并在同一页面中显示结果。 我正在使用这个语法的ajax: $.ajax ({ type: “POST”, url: “”, data: $(“form”).serialize(), success: function(result) { updatechart(); console.log(result); } }); 我基本上是尝试根据表单中输入的数据更新图表中的某些值,然后由php脚本处理。 当我做console.log(result);时,我得到了页面的全部来源console.log(result); 并且在执行此操作后,我的控制台中的值会更新,但图表不会更新。 当我查看源页面时,值保持不变。 我该怎么办? function updatechart() { var json=; var direct=json[‘direct’]; var total=json[‘total’]; var referred=total-direct; var aid=new Array(); var count=new Array(); for(var i=0;i<json['aid'].length;i++) { aid[i]=json['aid'][i]; count[i]=json['count'][i]; } var series = [{ name : "Referred", data: [referred] […]

jQuery .on(’click’)与.click()和.delegate(’click’)

我习惯使用.click()和delegate(‘click’) ,所以当我读到两个在最近的jQuery版本中都被弃用时,我以为我已经阅读了它,但是我有点嗤之以鼻。 这里的文档似乎表明这是.live()和.delegate()的替代品,但.click ()和.bind()有不同的行为,即绑定到当前存在的对象,其他的绑定到任何与DOM的生命周期相匹配的选择器模式的对象。 在大多数情况下,这不会产生很大的不同,但是当动态地向DOM添加元素时,这是一个重要的区别。 与旧模式匹配的新对象不会使用.delegate() 将侦听器绑定到click事件,而是使用.delegate() 。 我的问题是,如何使用.on()方法复制预先存在的.delegate()和.bind() ? 或者未来的一切都将转向.delegate()风格?

如何使用jquery打开选择输入

所以我可以看到select元素的选项,但我需要点击它。 如果我想使用某个function怎么办? 当某些事情发生时,应该选择这个select元素,意味着列表是打开的,我可以看到选项。 我不希望用户点击选择元素,我想要其他东西来打开它。 我试过的 $(“select”).select(); $(“select”).click(); $(“select”).focus(); 有一个select元素,通常如果你想打开它(下拉列表),你点击它。 我想要的是打开它,如果我点击DIV或其他任何东西。 我希望打开此下拉列表,而无需用户单击select元素。

长轮询/ HTTP流通用问题

我正在尝试使用php和jquery创建一个理论上的网络聊天应用程序,我已经阅读了有关长轮询和http流的内容,并且我设法应用了文章中介绍的大多数原则。 然而,有两个主要的事情我仍然无法理解。 随着长轮询 服务器如何知道何时发送更新? 是否需要不断查询数据库,还是有更好的方法? 使用HTTP Streaming 如何在Ajax连接期间检查结果是否仍然有效? 我知道jQuery的ajax调用的success函数,但是如何在连接仍在进行时检查数据? 我会感激任何和所有的答案,谢谢你提前。

使用ajax将JSON发送到PHP

我想以json格式将一些数据发送到php并在php中进行一些操作。 我的问题是我无法通过ajax将json数据发送到我的php文件。请帮助我,我该怎么做。 我试过这种方式.. $(function (){ $(“#add-cart”).click(function(){ var bid=$(‘#bid’).val(); var myqty=new Array() var myprice=new Array() qty1=$(‘#qty10’).val(); qty2=$(‘#qty11’).val(); qty3=$(‘#qty12’).val(); price1=$(‘#price1’).val(); price2=$(‘#price2’).val(); price3=$(‘#price3’).val(); var postData = { “bid”:bid, “location1″:”1″,”quantity1″:qty1,”price1”:price1, “location2″:”2″,”quantity2″:qty2,”price2”:price2, “location3″:”3″,”quantity3″:qty3,”price3”:price3 } var dataString = JSON.stringify(postData); $.ajax({ type: “POST”, dataType: “json”, url: “add_cart.php”, data: {myData:dataString}, contentType: “application/json; charset=utf-8”, success: function(data){ alert(‘Items added’); }, error: function(e){ console.log(e.message); } }); […]

使用jQuery同步滚动?

我正在尝试使用以下代码实现两个DIV同步滚动。 DEMO $(document).ready(function() { $(“#div1”).scroll(function () { $(“#div2”).scrollTop($(“#div1”).scrollTop()); }); $(“#div2”).scroll(function () { $(“#div1”).scrollTop($(“#div2”).scrollTop()); }); }); #div1和#div2具有相同的内容但是大小不同 #div1 { height : 800px; width: 600px; } #div1 { height : 400px; width: 200px; } 使用此代码,我面临两个问题。 1)滚动没有很好地同步,因为div具有不同的大小。 我知道,这是因为,我直接设置了scrollTop值。 我需要找到滚动内容的百分比,并为另一个div计算相应的scrollTop值。 我不确定,如何找到实际高度和当前滚动位置。 2)此问题仅在firefox找到。 在Firefox中,滚动不像其他浏览器那样流畅。 我认为这是因为上面的代码创建了一个无限循环的滚动事件。 我不确定,为什么这只发生在firefox上。 有没有办法找到滚动事件的来源,以便我可以解决这个问题。 任何帮助将不胜感激。

使用带有.change()事件的输入类型=“文件”字段上传文件并不总是在IE和Chrome中触发

我有一段简单的代码来上传文件: $(document).ready(function () { $(“.attachmentsUpload input.file”).change(function () { $(‘form’).submit(); }); }); 当我点击输入然后在对话框中选择一个文件时,我正在使用ajax提交此文件。 这不是重要的部分。 重要的是,当我在对话框中第二次选择相同的文件时,在提交第一个文件之后,.change()事件不会在IE和Chrome中触发。 但是当我选择不同的文件时,事件会触发并正常工作。 在Firefox下,它一直在开火。 如何解决这个问题,按预期工作(如在Firefox中)?

如何在事件上对jquery进行指令更新ng-model?

我正在为一个jQuery日期选择器插件制作一个AngularJS指令,它应该在datepicker日期发生变化时更新ng-model。 这是到目前为止的代码: angular.module(‘bootstrap-timepicker’, []).directive(‘timepicker’, [ function() { var link; link = function(scope, element, attr, ngModel) { element.datetimepicker(); element.on(‘dp.change’, function(event) { // update ngModel ? }); }; return { restrict: ‘A’, link: link, require: ‘ngModel’ }; } ]); 考虑到在调用事件时scope,element,attr,ngModel不可用,如何在’dp.change’事件中更新ngModel? 谢谢!

ASP.net MVC 3 jQueryvalidation; 禁用Unobtrusive OnKeyUp?

有没有办法禁用某个validation器(信用卡)的jQueryvalidation,以便它只发生在onblur而不是onkeyup? 根据jQuery Validator文档,我认为我可以这样做: $(function () { $(“[data-val-creditcard]”).validate({ onkeyup: false }) }); 但是,它似乎没有起作用。 我还尝试在我的validation器上执行以下操作: public class CreditCardValidator : DataAnnotationsModelValidator { string _message; public CreditCardValidator(ModelMetadata metadata, ControllerContext context, CreditCardAttribute attribute) : base(metadata, context, attribute) { _message = attribute.ErrorMessage; } public override IEnumerable GetClientValidationRules() { var rule = new ModelClientValidationRule { ErrorMessage = _message, ValidationType = “creditcard” }; […]