Tag: javascript

jQuery确定页面上是否存在元素

如何确定页面上是否存在元素…例如…… $(‘select[name=”modifier_option”]’) 如果屏幕上存在该选择框,我需要在页面上validation它的值以确保其值> 0,但如果它不存在,我不需要担心它。

如果没有数据返回,我怎样才能完全隐藏jqgrid?

当我从我的webservice返回记录时,我有一段时间试图只显示我的jqGrid。 我不希望它被折叠到你只看到标题栏的地方,但如果那是我能做的最好的,我想我可以在标题中加入一条有意义的信息。 不过,我更愿意隐藏网格并显示“找不到记录”消息div块。 我也猜测,如果最坏的情况发生,我可以在这个问题上做解决方案如何在jqGrid中显示没有任何数据的信息? (链接包括作为其他人的替代可能解决方案)。 我已经尝试在从函数和GRIDCOMPLETE事件加载数据时使用的函数内部执行.hide(),并且都没有完成隐藏网格。 我是JQuery的新手,更不用说使用jqGrid了。 $(document).ready(function() { $(“#list”).jqGrid({ url: ‘Service/JQGridTest.asmx/AssetSearchXml’, datatype: ‘xml’, mtype: ‘GET’, colNames: [‘Inv No’, ‘Date’, ‘Amount’], colModel: [ { name: ‘invid’, index: ‘invid’, width: 55 }, { name: ‘invdate’, index: ‘invdate’, width: 90 }, { name: ‘amount’, index: ‘amount’, width: 80, align: ‘right’ }], pager: jQuery(‘#pager’), postData: { “testvar”: “whatever” […]

我如何使动态创建的元素draggable()?

我正在试图弄清楚如何使动态创建的div可拖动,所以我创建了这个非常简单的东西来帮助我。 我知道我必须使用非动态处理程序的on()事件。 通过让body元素处理链接的JSfiddle中的克隆事件,我成功地使动态创建的div克隆,但它们不可拖动。 我究竟做错了什么? 提前谢谢你的帮助! $(document).ready(function () { $(“body”).on(‘click’, ‘.pink’, function () { $(‘.container’).append($(“”)) }); $(“body”).on(‘click’, ‘.blue’, function () { $(‘.container’).append($(“”)) }); $(“body”).on(‘click’, ‘.coral’, function () { $(‘.container’).append($(“”)) }); $(“.draggable”).draggable(); });

如何选择下一个匹配元素?

这有效: link1 link2 link3 $(“a[href*=’#/link1′”).next(‘a[href*=”#”]’).click(); 但这不是: link1 link2 link3 $(“a[href*=’#/link1′”).next(‘a[href*=”#”]’).click(); 以上测试“”标签,而不是下一个匹配的链接。 我将如何在两种情况下使其工作。 我想选择下一个匹配元素,如果匹配则不是下一个元素。 也许.next()不是正确的方法?

JavaScript事件处理的竞争条件?

我们知道JavaScript是单线程的,但我们想要确认我们对JavaScript中异步事件处理的理解。 更重要的是,我们想确认我们没有暴露于潜在的竞争条件。 从概念上讲,我们的移动应用是这样的: 我们在加载移动页面时调用函数foo 。 在foo结束时,如果计数器大于0 ,我们使用setTimeout再次调用foo (延迟一秒)。 如果计数器达到0 ,我们加载一个新页面。 超时保存在变量中。 如果点击了一个按钮,我们调用do_tap函数并清除第二步中保存的超时变量(并执行其他操作)。 do_tap和foo都更新了相同的页面元素,我们想确认它们不会互相踩踏。 问题: 假设在执行foo期间发生了敲击。 浏览器队列do_tap会在foo完成后开始执行吗? 换句话说,我们是否保证一旦foo启动,我们永远不会看到执行foo和do_tap交错? 如果首先出现水龙头怎么办? 保证do_tap在foo启动之前完成,对吗?

使用跨源资源共享的跨域POST查询不会返回任何数据

我通过POST请求发送数据跨域但响应不起作用,具体而言,jQuery的成功处理程序永远不会被调用。 正在使用的东西:Django,Apache,jQuery。 所以,我设置了一个与此类似的请求: $.ajax({ url: “http://somesite.com/someplace”, type: “POST”, cache: false, dataType: “json”, data: { … }, success: function( msg ) { alert(msg); }, }); 众所周知, CORS允许我适当地回应OPTIONS查询,说“是的,你可以发给我”。 我在做什么 Firebug确认我收到了200状态代码,返回类型实际上是application/json 。 但是,Firebug还确认上面的成功处理程序没有被调用。 作为参考,我对OPTIONS回应是: elif request.method == “OPTIONS”: response = HttpResponse(“”) response[‘Access-Control-Allow-Origin’] = “*” response[‘Access-Control-Allow-Methods’] = “POST, GET, OPTIONS” response[‘Access-Control-Allow-Headers’] = “X-Requested-With” return response 相反,如果我设置了一个complete: function()…处理程序,它就可以了。 所以,问题是:发生了什么(或不发生)以及为什么? 我收到的数据很好,我只是希望能够返回响应。 […]

在最后一次按键5秒后调用javascript函数

我有一个带有的表单,我希望在最后一次按键5秒后调用一个javascript函数,每次按下一个新键时,此计时器应该重置并且只在5之后调用该函数秒。 我怎样才能做到这一点? 我正在使用jQuery。 谢谢!

jQuery Deferreds的异步循环(promises)

我试图创造我认为被称为“瀑布”的东西。 我想顺序处理一系列异步函数(jQuery promises)。 这是一个人为的例子: function doTask(taskNum){ var dfd = $.Deferred(), time = Math.floor(Math.random()*3000); setTimeout(function(){ console.log(taskNum); dfd.resolve(); },time) return dfd.promise(); } var tasks = [1,2,3]; for (var i = 0; i < tasks.length; i++){ doTask(tasks[i]); } console.log("all done"); 我希望它按照它们执行的顺序完成任务(存在于数组中)。 因此,在这个例子中,我希望它执行任务1并等待它解决然后执行任务2等待它解决,执行任务3等并且日志“全部完成”。 也许这是非常明显的,但我一直试图在整个下午解决这个问题。

更改了jQuery找不到的ID

很难想出这个问题的标题。 更多的是为了概念validation,我想知道为什么这不起作用。 我正在尝试做的是使用jquery事件来更改ID属性,然后使用绑定到这个新更改的ID的另一个jquery事件。 例如: <?php echo <<<END #before { color:maroon; } #after { color:blue; } Test $(document).ready(function(){ $(“#before”).hover(function() { $(this).attr(“id”,”after”); }); $( “#after” ).click(function() { alert( “Handler for .click() called.” ); }); }); TEST TEXT END; ?> 将鼠标hover在我的测试文本上时,颜色会从栗色变为蓝色,如预期的那样。 我的理解是,文本现在具有“after”的ID,并且单击时将应用click事件处理函数。 但是,快速事件处理程序及其关联的警报似乎不会触发。 我是jquery的新手,或许有一个更新处理程序function,我忽略了?

Uncaught SecurityError:无法从’HTMLIFrameElement’读取’contentDocument’属性

我正在尝试制作我自己的“网站检查器”以满足特定需求,我在访问iFrame时遇到问题。 Uncaught SecurityError:无法从’HTMLIFrameElement’读取’contentDocument’属性:阻止具有原点“http:// checker.xcore.co.il”的框架访问具有原点的框架“http:// xcore.co.il ”。 请求访问权限的框架将“document.domain”设置为“checker.xcore.co.il”,但正在访问的框架没有。 两者都必须将“document.domain”设置为相同的值才能允许访问。 我必须使用iFrame这样做,因为我需要访问类CSS。 单击此链接 ,加载网站,然后单击右侧的“fontSizeErrors”,然后您可以在控制台日志中看到错误。 我怎么能通过这个? 我在Google上找不到任何有用的东西.. 谢谢!