草庐IT

jQuery-migrate

全部标签

javascript - 在 jQuery 中,有没有办法只绑定(bind)一次点击?

我有一个ajax应用程序,它将在每次交互时运行函数。我希望每次都能够运行我的设置函数,以便该函数的所有设置代码都保持封装状态。但是,多次绑定(bind)元素意味着处理程序将运行多次,这显然是不可取的。jQuery中是否有一种优雅的方法可以多次调用元素上的绑定(bind),而不会多次调用处理程序? 最佳答案 用户jQueryone函数像Tom所说的那样,但每次在再次绑定(bind)之前取消绑定(bind)处理程序。将事件处理程序分配给变量比使用匿名函数更有帮助。varhandler=function(e){//stuff};$('#e

javascript - jQuery - 连接带引号的字符串的更好方法?

在jQuery中有没有比转义引号更好的方法来连接具有"的字符串(例如HTML标记属性定义)?转义示例:$(this).prepend(""+"a"+""); 最佳答案 您可以使用创建对象的方法($(html,props)),如下所示:$('',{for:this.id,text:'a'}).prependTo(this);//or:$(this).prepend($('',{for:this.id,text:'a'}));这样做的好处是可以调用.text()在内部,处理任何编码问题。此外,如果您多次执行此操作,很多,它会更快,因为H

javascript - 如何在 jquery 中使用单个取消委托(delegate)方法删除多个事件委托(delegate)

我能否使以下内容更简单(而不是使用两次“取消委托(delegate)”)?$("#div1").undelegate("div","mouseenter").undelegate("div","mouseleave");我不希望除mouseenter和mouseleave之外的事件处理程序受到干扰。 最佳答案 用空格分隔您的事件。$("#div1").undelegate("div","mouseentermouseleave");不过,您应该使用on和off。$("#div1").off("mouseentermouseleave

javascript - jQuery 动画宽度向右

我想让div像下面的例子一样向右滑动:http://jsfiddle.net/56hxy/3/但我不想移动边距,而是想“挤压”宽度,但它无法通过更改宽度%(width:'60%')来工作,而是向左挤压。 最佳答案 不确定这是否正是您要查找的内容,但请尝试:$('#content').animate({marginLeft:'40%',width:'60%'});Fiddle或者在CSS中将right:0赋给#content,然后你可以为width设置动画,它会从左向右收缩无需margin。与上述效果相同但更清洁。Fiddle另外,j

javascript - Jquery:获取每个图像src

我有一系列图片,每张图片都属于“照片”类;我想遍历其中的每一个并检索照片源,以供稍后在if语句中使用。我已经编写了以下代码来执行此操作,但没有成功:$.each($(".photo"),function(){varimgsrc=$(this).attr("src").length;console.log(imgsrc);});我不确定这里哪里出了问题。这对我来说似乎很有意义,但我在控制台中没有得到任何东西。谁能指出我正确的方向? 最佳答案 如果您为所有img标签提供了相同的类名,那么试试这个,$(".photo").each(fun

javascript - 使用 jquery 从对象数组中获取属性值数组

这个问题在这里已经有了答案:Fromanarrayofobjects,extractvalueofapropertyasarray(24个答案)关闭7年前。我想从这里开始:example=[{name:"someone1",city:"somewhere1",state:"someplace1"},{name:"someone2",city:"somewhere2",state:"someplace2"}]到这里:example.name=["someone1","someone2"]尽可能少的代码。显然我可以循环它并构建数组,但我需要在各种对象上多次执行此操作。我可以编写一个函数来执

javascript - jQuery 通过 Ajax 在 ASP.NET MVC C# 中调用 Action 方法

我已经尝试了几个小时来让它工作,我真的希望你们中的一个比我更了解(很多)这方面的知识。当客户端在文本框中键入时,我想调用MVCC#Controller方法称为updateOrder()。理想情况下,我想使用FormCollection访问表单元素(该表单称为“createOrder”)。在Controller中,我有:C#[WebMethod]publicstaticvoidupdateOrder(){strings="asdf";}上面的字符串声明是断点的。在View中,我有一个方法,我基本上是复制和粘贴我在stackoverflow上找到的:JavaScriptfunctionup

javascript - jQuery 是否有返回 rootURL 的内置函数?

如果我需要的话,我通常使用下面的函数来返回根URL,但我想问问jQuery是否有一种“单一”的方式来做到这一点......functiongetRootURL(){varbaseURL=location.href;varrootURL=baseURL.substring(0,baseURL.indexOf('/',7));//iftherooturlislocalhost,don'taddthedirectoryascassanidoesn'tuseitif(baseURL.indexOf('localhost')==-1){returnrootURL+"/AppName/";}els

javascript - 如何使jquery每个数字

这是我的代码:$.each(3,function(n){alert(n);});我想提醒三次,但没有用。我能做什么? 最佳答案 each必须对一个对象进行操作。尝试创建一个长度为3的数组,例如$.each(newArray(3),function(n){alert(n);});当然,我看不出有什么理由避免使用普通的Javascript。for(varn=0;n 关于javascript-如何使jquery每个数字,我们在StackOverflow上找到一个类似的问题:

javascript - jQuery 每个这个

varslides=$(".promo-slide");slides.each(function(key,value){if(key==1){this.addClass("first");}});为什么我会收到一条错误消息:UncaughtTypeError:Object#hasnomethod'addClass'从上面的代码? 最佳答案 在jQuery回调函数中,this(在您的示例中还有value)指的是DOM对象,而不是jQuery对象。varslides=$(".promo-slide");slides.each(funct