javascript - jquery插件回调函数的问题
PHP中文网
PHP中文网 2017-04-11 10:30:56
0
2
200

我的问题主要是在这种情况下碰到的:我在一个循环中使用了插件来生成东西,然后在回调中,我想对原始的元素做一些操作,可这时候我找不到原始元素了,怎么办。下面上代码:

/*日历插件*/
$('.data-input input').each(function(index, el) {
    $self = $(this);
    $self.daterangepicker({}, function(){
        console.log($self);//这里有问题
    });
});

这里的$self其实全都指向循环的最后一个$self,其实这边倒好理解,毕竟是个回调,等回调执行的时候,外部已经循环结束了,所以$self指向最后一个。
所以,在不改动html的前提下,这种问题该怎么解决呢,ps:在回调里直接写$(this)指向的是插件本身

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(2)
小葫芦
$('.data-input input').each(function(index, el) {
    function($this){
        $self.daterangepicker({}, function(){
            console.log($self);
        });
    }($(this));    
});

这样可以吗?


还可以这样:

$('.data-input input').each(function(index, el) {
    var $self = $(this);
    $self.daterangepicker({}, function(){
        console.log($self);
    });   
});
PHPzhong

谢邀~

/*日历插件*/
$('.data-input input').each(function(index, el) {
    $self = $(this);
    (function(){
      $self.daterangepicker({}, function(){
          console.log($self);//这里有问题
      });
    })($self)
});
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!