Tag: 这个

关闭时使用’this’

我只是好奇……我怎么在jQuery函数中使用’this’? 例如,如果我有这样的代码…… headEl.find(“form.blog-search input”).focus(function() { $(this).next(“span”).animate({opacity:1}, 200); }) 它工作正常,但是在linting时我得到了“ 关闭时使用’ this ‘的警告”。 这是我应该忽略的东西,还是我可以做的事情不仅要解决警告,还要改进我的代码? 更新: 根据Kevin B在下面的评论,我将代码更改为 headEl.find(“form.blog-search input”).on(‘focus’, function(event) { $(event.target).next(“span”).animate({opacity:1}, 200); }) 哪个按预期工作…现在我只是好奇,这个方法的缺点是什么,什么时候应该用它来支持this ,反之亦然?

在jQuery中扩展原型时,如何保持对this关键字的控制?

我在jQuery中实现了一个类似于类的结构,但是当我尝试调用我的一些函数时遇到了一些麻烦。 这是结构的设置方式: MyClass = function(name) { this.init(name); } $.extend(MyClass.prototype, { init: function(theName) { this.myFunction(); // works $(‘.myclass’).each(function(){ this.myFunction(); // doesn’t work }); }, myFunction = function(){} }); 我遇到的问题是,当我尝试从jQuery块(如上面的each()构造)中调用我的一个函数(例如, myFunction() )时,我得到错误“ myFunction() is not a function 。“ 我认为这与this关键字在jQuery块中更改其含义有关,但我不确定。 任何帮助,将不胜感激!

Javascript函数对象,这个关键字指向错误的对象

在javascript函数对象中使用时,我遇到了关于javascript“this”关键字的问题。 我希望能够创建一个对象来处理Modal弹出窗口(JQuery UI对话框)。 该对象称为CreateItemModal。 我希望能够实例化并传递一些配置设置。 其中一个配置设置。 调用show方法时,将显示对话框,但取消按钮不起作用,因为它指的是DOM对象而不是CreateItemModal对象。 我该如何解决这个问题,或者是否有更好的方法将单独的行为放在单独的“类”或“对象”中。 我尝试了几种方法,包括将“this”对象传递给事件,但这并不像是一个干净的解决方案。 请参阅下面的(简化)代码: function CreateItemModal(config) { // initialize some variables including $wrapper }; CreateItemModal.prototype.show = function() { this.$wrapper.dialog({ buttons: { // this crashes because this is not the current object here Cancel: this.close } }); }; CreateItemModal.prototype.close = function() { this.config.$wrapper.dialog(‘close’); };

我可以将“this”作为参数传递给javascript中的另一个函数

我有这个: $(‘#slider li’).click(function () { var stepClicked = $(this).index(); alert(stepClicked); if (stepClicked != 0) { $(‘#cs_previous’).removeClass(‘cs_hideMe’); } else { $(‘#cs_previous’).addClass(‘cs_hideMe’); } $(‘li.cs_current’).removeClass(‘cs_current’); $($(this)).addClass(‘cs_current’); moveToNextImage(stepClicked); function moveToNextImage(stepClicked) { alert(stepClicked); var currentIs = $(‘li.cs_current’).index(); var newLeftEdge = currentIs – stepClicked; $(‘.cs_riskStageImage’).fadeTo(200, .2).animate({ left: newLeftEdge }, “fast”).fadeTo(200, 1); }; }); 警报显示所点击的li的正确索引,当我在我正在调用的最后一个函数moveToNextImage(stepClicked)警告变量时,相同的值显示但动画没有发生。 这有很多其他方法,但我试图传递单击列表项的索引值以用于计算数学。 ..或者我可以将值转换为第一个函数中的另一个变量,我可以传递给第二个吗?

在Jquery Ajax响应中使用选择器和$(this)

我想知道如何在Ajax响应中使用Jquery选择器。 我的网站有一个feed,每个主要块都有一个唯一的ID,但我不想单独识别其中的每个div(这很多)。 到目前为止,$(this)从主事件处理程序中返回单击的ID,但是当我在响应函数中使用它时,我得到’undefined’。 如何从响应中获得与$(this)相同的效果,或者我是否必须在某处找到唯一的ID? 主要function是通过具有特定rel属性的超链接调用 function(msg){ var container = $(this).parent().attr(‘id’); alert (container); //returns undefined }

jQuery – ‘this’选择器在回调函数内不起作用

可能重复: $(this)在函数中不起作用 我正在写jQuery删除代码的post,删除本身是通过post-request to backeds,服务器返回200后,我想在客户端删除这篇文章。 $(‘.delete-post’).click(function() { $.post($(this).attr(‘href’), {}, function(data) { $(this).closest(‘.post’).remove(); }); return false; }); 但是,我注意到内部函数(数据){…)选择器’this’不起作用。 我需要删除最接近$(‘.delete-post’) div的类’.post’。 如何管理这个问题? 谢谢!

如何在jquery中替换(’something’)后获取对象的实际内容

我有这个代码 $(document).ready(function(){ $(‘.selector’).click(function(){ obj = $(this); obj.replaceWith(‘whats up man ??!’); alert(obj.html()); }); }); 我想获得’obj’的新内容,这个内容一直是​​’replaceWith’ 但, 我得到旧内容而不是…… 我怎样才能得到’obj’的实际内容? 我的意图是访问新的’obj’ $(‘.selector’).click(function(){ var obj = $(this), repl = $(‘whats up man ??! ‘); obj.replaceWith(repl); alert(obj.find(‘span’).attr(‘class’)); //this will print ‘undefined’ }); 我想打印’span’的类名,即’medium’

jQuery在div中一次循环一个p标签的.fadeIn和.fadeOut

下面的代码在一个推荐中成功淡出6秒,等待3秒,然后淡出并继续下一个。 一旦达到第三个见证,它就会跳回到第一个。 这正是我想要的,但在我的实际网站上,我有三个以上的推荐,并且将来可能会增加更多。 每次添加新推荐书时,我都不想再返回并添加新function。 我尝试了一段时间,使用“this”和.next()使其工作但失败了。 我希望有人可以通过循环它并使其移动到容器中的下一个p标签而不必每次调用新函数来提高效率。 感谢任何帮助,谢谢。 注意:我知道有类似的问题,但没有一个是完全相同的,答案是低于标准。 #tml-container p { display: none; } Testimonial 1 Testimonial 2 Testimonial 3 $(document).ready(function() { function doFade() { $(“#one”).fadeIn(6000,function() { $(“#one”).fadeOut(6000).delay(3000); setTimeout(fadeTwo,6000); }); } function fadeTwo() { $(“#two”).fadeIn(6000,function() { $(“#two”).fadeOut(6000).delay(3000); setTimeout(fadeThree,6000); }); } function fadeThree() { $(“#three”).fadeIn(4000,function() { $(“#three”).fadeOut(6000).delay(3000); setTimeout(doFade,6000); }); } doFade(); });

Jquery UI Sortable – 获取正在排序的项目

使用Jquery UI Sortable时(顺便说一句,这很棒)如何获取当前正在排序的项目。 当你使用$(this); 它返回实际的可排序列表,而不是当前排序的项目。 当用户拖动它时,我想用小部件做一些花哨的东西。 例如,在两个列表之间拖动时为其设置动画。 那么如何才能对当前项目进行排序? 下面有一些代码只是为了解释一下…… $(function() { $(“#sortable_1”).sortable({ start : function(event, ui){ //get current element being sorted }, stop : function(event, ui){ //get current element being sorted } }).disableSelection(); });

如何在Fancybox的onComplete事件中使用$(this)?

我正试图在Fancybox的onComplete事件中使用jQuery的$(this) ,但我遇到了麻烦。 这是我的javascript代码: $(‘a.iframe’).fancybox({ centerOnScroll: true, onComplete: function(){ var self = $(this); var title = self.title; alert(title.text()); } }); 我已经简化了上面的代码以获得我的观点,但我真的很想使用$(this) ,原因有几个,我不会在这里讨论。 Fancybox的文档显示了在其文档中使用this而不是$(this)示例,但我没有看到任何在onComplete或其他事件中使用的示例。 我当然尝试使用this ,但无济于事。 有没有人知道如何通过在onComplete事件中使用$(this)或任何其他方法来引用触发的a.iframe元素? 编辑:我使用Blackcoat的建议让这个工作,这里有最终的语法: $(‘a.iframe’).fancybox({ centerOnScroll: true, onComplete: function( links, index ){ var self = $(links[index]); var title = self.find(‘.title’).text(); alert(title); } });