2016-08-02 58 views
1

我试图让一个脚本运行,将一些事件添加到类中。 我只想将这些事件添加到此类中的一个特定DIV中。我使用pep.js:

$(".drag").pep({ 
start: function() { 
     $(".drag").addClass('color'); 
     $('.drag').next(".text").fadeIn("slow"); 
     $(".text-video").fadeOut("fast"); 

    }, 
stop: function() { 
     $('.drag').removeClass('color'); 
     $('.drag').next(".text").fadeOut("slow"); 
    } 

    }); 

这工作,但它在一次触发所有.drag项目......我只想要一个我拖动到添加了所有的事件。

我试图把它与写:

$(".drag", this).addClass('color'); 

或:

$(this).addClass('color'); 

或:

$(this.element).addClass('color'); 

但是这一切都没有奏效。 有人有想法吗?

UPDATE:

我做了一个的jsfiddle有希望解释我的问题。

https://jsfiddle.net/ke6d5r1h/

正如你看到的,例如。颜色类不仅添加到被拖动的DIV,同时也给其他。这是我想改变的。

+0

'console.log(this)'显示了什么? –

+0

你可以分享可执行的演示/片段或[JSFiddle](https://jsfiddle.net/)吗? [_创建最小,完整和可验证的示例_](http://stackoverflow.com/help/mcve) – Rayon

+0

它以什么方式不起作用?它会给你一个特定的错误信息吗?请阅读这篇文章如何在这个网站上提出问题:http://stackoverflow.com/help/how-to-ask –

回答

1

在事件处理程序中使用console.log(arguments),我可以确定处理程序传递了两个参数:事件对象和包含上下文的对象。上下文有一个属性$el,它是事件目标的jQuery对象。

start: function(e,a) { 
    a.$el.addClass('color'); 
    a.$el.next(".text").fadeIn("slow"); 
    $(".text-video").fadeOut("fast"); 
}, 

https://jsfiddle.net/85tffqhL/

e.target也会给你的元素的引用。

+0

这个工作完美!非常感谢!好的,对我来说是新的,我是JQuery的新手......感谢您的帮助! – Cyrill