2012-01-21 4 views
2

Я использую js/jquery для создания перетаскиваемого графика. График имеет два перетаскиваемых элемента, которые выбирают значения на основе графика. Моя проблема заключается в следующем, чтобы следующий шаг состоял в том, чтобы сделать умножить до шести графиков на одной странице, что я и сделал, теперь, когда графики создаются динамически, только способ ссылки на элемент равен $(this), как будут адресаты обоих элементов в такая же функция?Использование одной функции Javascript/JQuery для нескольких элементов HTML?

EDIT:

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; 
} 

также не работает ??

ОТВЕТ:

var $selFirst = $(this).parent().children().eq(0), 
     $selSecond = $(this).parent().children().eq(1) 

ответ

1

Он до сих пор не ясно, что вы хотите достичь. Наверное, это так. Пожалуйста, перетащите divs в приведенный ниже пример.

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

В функциях обработчиков событий this и event.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/

+0

просто добавить все элементы в этом компоненте создаются динамичны и могут быть удалены, так что я не могу пойти сказать, если «Button1» ... так как пользователь может добавить/удалить, имена идентификаторов построено динамически? –

Смежные вопросы