在多个Html元素上使用一个Javascript / Jquery函数?

时间:2012-01-21 15:04:13

标签: javascript jquery html jquery-ui dom

我正在使用js / jquery来创建可拖动的图形。 Graph有两个可拖动的元素,可以在后面的图形上选择值。我现在的问题是,下一步是能够在一个页面上最多乘以六个图,这是我做的,现在当动态创建图形时,只有参考元素的方式是{{1如何在同一个函数中添加两个元素?

修改

$(this)

如果我使用:

function drag_function(event, ui) {

    var $selFirst = $(".second :nth-child(1)"),
        $selSecond = $(".second :nth-child(2)"),
        cachedWidth = $selFirst.outerWidth();

    var $firstRightBorder = $selFirst.position().left + 1,
        $secondLeft = $selSecond.position().left,
        diff = $firstRightBorder - $secondLeft;
}

也不起作用?

解答:

function drag_function(event, ui) {

    var $selFirst = $(this),
        $selSecond = $(this),
        cachedWidth = $selFirst.outerWidth();

    var $firstRightBorder = $selFirst.position().left + 1,
        $secondLeft = $selSecond.position().left,
        diff = $firstRightBorder - $secondLeft;
}

1 个答案:

答案 0 :(得分:1)

目前尚不清楚自己想要达到的目标。我猜是这个。请在下面给出的示例中拖放div。

http://jsfiddle.net/diode/8wxCb/1/

在事件处理函数中,thisevent.currentTarget将引用发生事件的对象。

例如:

button1.onclick = function(event){

     console.log(this);  // button1
     console.log(event.currentTarget);  // button1

}

因此,如果您向许多人添加与侦听器相同的功能,则可以在该功能中检查

if(this == button1){

}else if(this == button2){

}

if(this.id == "button1"){

}else if(this.id == "button2"){

}

当你在函数中获得对象时,你可以直接读/写它的属性

请参阅:http://jsfiddle.net/diode/nZQy6/