我正在尝试运行一个脚本,将一些事件添加到类中。 我希望这些事件只能添加到此类中的一个特定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');
但这一切都行不通。 有人有想法吗?
更新
我做了一个JSFiddle,希望能解释我的问题。
https://jsfiddle.net/ke6d5r1h/
如您所见,例如.color类不仅添加到被拖动的DIV中,还添加到另一个DIV中。这就是我想要改变的。
答案 0 :(得分: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
也会为您提供元素的引用。