2014-12-10 2 views
0

В настоящее время у меня есть фрагмент кода :.JQuery/JavaScript, функции динамического хранения/применения

var nextSibling = $(this.parentNode).next(); 

, что я хотел бы сделать, это потенциально изменить функцию следующего() к пред(), в зависимости от нажатия клавиши. (Я ожидаю, что это будет элемент ввода в таблице).

Как поместить функции next()/prev() в переменные (я предполагаю, что вы обращаетесь к нему через некоторый объект-прототип, но я не уверен, какой из них).

if (keypressRight){ 
    var nexOrPrev = SomeObject.prototype.next 
}else{ 
    var nextOrPrev = SomeObject.prototype.prev 
} 

Тогда назвать это, я предполагаю, что я хотел бы сделать следующее:

var nextSibling = $(this.parentNode).nextOrPrev() 

это выглядит как правильный способ делать вещи? Я открыт для предложений о лучших путях. (Я видел, что где-то еще предлагаю использовать заявку на вызов функции, но в настоящее время я не вижу никакой пользы от использования этого).

ответ

3

Вы можете использовать обозначение скобки для вызова функции для объекта jQuery. Попробуйте это:

var funcName = keypressRight ? 'next' : 'prev'; 
var nextSibling = $(this.parentNode)[funcName](); 
1

вы можете написать

var nextOrPrev = SomeObject.prototype[keypressRight?"next":"prev"]; 

используя ternary operator

, и это может быть сделано также для

$(this.parentNode)[keypressRight?"next":"prev"](); 
Смежные вопросы