Использование одной функции Javascript / Jquery для нескольких элементов HTML? - PullRequest
2 голосов
/ 21 января 2012

Я использую js / jquery для создания перетаскиваемого графа.График имеет два перетаскиваемых элемента, которые выбирают значения на графике позади.Теперь моя проблема в том, что следующим шагом будет возможность умножить до шести графиков на одной странице , что я и сделал, теперь, когда графики создаются динамически, единственный способ ссылаться на элемент - это $(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;
}

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

ОТВЕТ:

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

1 Ответ

1 голос
/ 21 января 2012

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

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/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...