Tag: jQuery

我如何检测select器是否返回null?

检测jQueryselect器是否返回空对象的最佳方法是什么? 如果你这样做: alert($('#notAnElement')); 你得到[对象对象],所以我现在这样做的方式是: alert($('#notAnElement').get(0)); 这将写入“未定义”,所以你可以做一个检查。 但是这似乎很糟糕。 还有什么其他的方式?

Javascript在Firefox上开发的典型原因是什么?

我开发了一些JavaScript增强页面,在最近的Firefox和Safari上运行良好。 我错过了在Internet Explorer中检查,现在我发现这些页面在IE 6和7(到目前为止)上不起作用。 该脚本不知何故不执行,页面显示,如果JavaScript不存在,虽然一些JavaScript执行。 我正在使用dom操作自己的库,从YUI 2我使用YUI-Loader和XML-Http-Request,并在一个页面上使用“psupload”,这取决于JQuery。 我从Office XP安装Microsoft脚本编辑器,现在将进行debugging。 我现在也会写特定的testing。 什么是IE的典型失败点? 我可以保持睁大眼睛的方向。 我发现这个页面,显示了一些不同之处。 请访问: Quirksmode 你能从你的经历中找出一些我应该首先寻找的典型的东西吗? 以后我还会在这里提出更多的问题来处理特定的任务,但是现在我对你的经验感兴趣,为什么IE通常在Firefox中运行正常的脚本上失败 编辑:谢谢你所有这些伟大的答案! 在此期间,我已经调整了整个代码,以便它也适用于Internet Explorer。 我整合了jQuery,现在在上面build立了自己的类。 这是我的基本错误,我从一开始就没有在jQuery上构build所有的东西。 我现在有。 JSLint也帮了我很多。 许多来自不同答案的单个问题都有所帮助。

AngularJS与jQuery有什么不同?

我只知道一个js库,那就是jQuery 。 但是我的其他编程人员正在将AngularJS作为新项目的默认库。 我对此一无所知。 与jQuery有什么不同呢? 我已经有一组function在jQuery中完成类似的任务。 我仍然可以使用AngularJS的jQuery的东西吗?

使用Jquery.validate.jsvalidation电子邮件地址的格式

我正在使用jquery.validate.js来validation公式的电子邮件input。 它运行良好,但我很惊讶,它是除了以下格式的电子邮件有效:名称@域 在我看来,缺less一个.TLD,不是吗? 我检查了jquery.validate.js文件中的函数。 他们正在参考www.whatwg.org的规范来获取有效的电子邮件地址。 在网站上说,一个有效的电子邮件地址的格式应该是name@doman.tld jquery.validate.js中的JS Regex如下: email: function( value, element ) { return this.optional( element ) || /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test( value ); }, 如何使用自定义正则expression式来validation电子邮件是否包含.TLD? 我指定了自定义validation方法如下: jQuery.validator.addMethod("customemail", function(value, element) { return this.optional(element) || /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(value); }, "Please enter a valid email address."); validation表单的函数如下: $("#subscription-form").validate({ }); 我需要包括什么,所以脚本使用我的自定义方法,而不是电子邮件方法?

Javascript代码工作在jsfiddle而不是在浏览器

我试图寻找类似的问题,但一直没能find我的代码工作在jfiddle而不是在浏览器中的原因。 我也尝试了从jfiddle到另一个小提琴项目的代码副本,并在新项目中的代码不起作用。 你可以在这里find我的项目 。 我正在做一个互动的食品游戏,有人挑选一个食品,例如橡子壁球,然后用户可以拖动图像。 我的第一个尝试是在代码中粘贴代码。 <script language="JavaScript"> code </script> 我是否需要onpage载入事件? JavaScript是否需要放在一个函数? 我是否使用jfiddle框架中没有在我需要调用的本地主机上使用的东西? 下面是我没有额外的食物选项使用的代码 var stage, layer; var sources = { plate: 'http://www.healncure.com/wp-content/uploads/2014/03/plate1.jpg', acornsquash: '../../../wp-content/uploads/2014/03/acorn-squash.png', }; loadImages(sources, initStage); function loadImages(sources, callback) { var images = {}; var loadedImages = 0; var numImages = 0; // get num of sources for (var src in sources) { […]

Fancybox只能对高内容进行水平响应吗?

我有一个非常高的图像网站。 我希望这些图像以响应的方式进行水平响应,但不是垂直响应。 如果他们符合浏览器的高度,他们变得太小,看不正确。 有没有一个简单的方法来完成这个,我失踪了? 看下面的例子。 点击第二个缩略图“bswift”,然后是一个小的灰色方块来启动Fancybox。 http://www.eaaronrossdesign.com/index2.php

在SetTimeoutrecursion函数(Javascript)上超出最大调用堆栈大小

我有一个recursion的SetTimeout函数,它可以在筛选器加载后(在Ajax中加载,因此在页面加载时不能立即提供)点击我的页面上的筛选器。 $scope.clickFilter = function () { var filter = $('.filter-item') .find('input[value="' + $scope.activeFilter + '"]'); if (filter.length < 1) { setTimeout($scope.clickFilter(), 1000); } else { $(filter).trigger("click"); } } 但是,当filter需要很长时间才能加载时,出现“Uncaught RangeError:Maximum call stack size exceeded(…)” 我如何防止这种情况并确保它一直运行到完成?

当div的2/3在viewport中时jQuery触发

我需要在单页网站上更改“活动”菜单项,当用户向下滑动或向上滑动时,可以在视口中看到类似三分之二的div。 我发现了一些jQuery插件,但所有这些都是当整个div被查看。 简单地说,我需要像在这个网页上一样: https://vivaldi.com/ : https://vivaldi.com/ 而我的页面将如下所示: http : //jsfiddle.net/kwbddvau/2/ html{height:calc(100% – 100px) !important;width:100% !important; margin:0px; padding:0px;} body{height:500% !important;width:100% !important; margin:0px; padding:0px;} .page {height:20% !important; width:100% !important;} #page1{background-color:red; margin-top: 100px;} #page3{background-color:green;} #page5{background-color:blue;} #menu{width: 100%; height: 100px; color: #fff; background-color: black; position: fixed; top:0px} #menu a {color: white; text-decoration:none;} #menu a.active {color: red; text-decoration:underline;} <div id="menu"><div […]

无法加载谷歌iframe在fancybox

我的iframe可以正常使用我的内部页面,但是我将源url设置为Google时失败。 这是我的代码,我使用版本2(最新) <script language="javascript" type="text/javascript" src="../js/jquery.js"></script> <script type="text/javascript" src="../js/fancybox/jquery.fancybox.pack.js"></script> <link rel="stylesheet" type="text/css" href="../js/fancybox/jquery.fancybox.css" media="screen" /> <script type="text/javascript"> $(document).ready(function() { $(".various").fancybox({ maxWidth : 800, maxHeight : 600, fitToView : false, width : '70%', height : '70%', autoSize : false, closeClick : false, openEffect : 'none', closeEffect : 'none' }); }); </script> <a href="http://www.google.com/search?q=android" class="various fancybox.iframe">Open iframe</a>

如何以编程方式更改控件自身更改事件中的select框select,并使其在移动浏览器中可用

考虑以下简化的HTML和jQuery代码: <select id="select1"> <option value="10">10</option> <option value="5">5</option> <option selected="selected" value="1">1</option> </select> $('#select1').change(function () { if ($('#select1').val() > 5) { $('#select1').val(1); alert("Select set to 1"); } }); 小提琴 如果用户从select控件中select10,则从控件自己的更改事件中重置为1。 这适用于我的台式机上的浏览器,但不适用于iPhone或iPad上的Chrome或Safari。 (实际上,在移动浏览器中,select设置为1,然后返回到10) 基本上,我试图限制用户在特定条件下可以select的内容。 有没有一种方法可以从自己的更改事件中重置select控件上的选项,并使其在移动浏览器中工作?