2013-10-25 4 views
1

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

function updateLinkedElements(element) { 
    process the element; 
} 

// Ensure that the related elements is set properly on initialization. 
$('#edit-type-config-associated-element').updateLinkedElements(this); 

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

Будет ли это работать? Или мне нужно сделать это по-другому?

Благодаря

+0

Это не сработает, вам нужно будет создать плагин jQuery для включения этого синтаксиса (без 'this' в конце). См. Http://learn.jquery.com/plugins/basic-plugin-creation/ – bfavaretto

ответ

1

чтобы использовать метод, как это, вы сделать это плагин JQuery:

$.fn.updateLinkedElements = function(){ 
    return this.each(function(i, el){ 
    // process element el 
    }); 
}; 

Использование:

$('#edit-type-config-associated-element').updateLinkedElements(); 
0

Почему бы вам не сделать это:

updateLinkedElements($("#edit-type-config-associated-element")); 
+0

Это вопрос или ответ? Это похоже на вопрос. –

0

Нет, потому что ваша функция не является методом объекта JQuery. Вобще:

updateLinkedElement($('#edit-type-config-associated-element') 

Если выяснится, что вы хотите сделать это с помощью нескольких элементов из селектора использовать каждый() http://api.jquery.com/each/

Тогда он стал бы:

$(<selector>).each(function() { updateLinkedElement(this); }); 
0

использование только $('#edit-type-config-associated-element') в качестве селектора

0

вы можете сделать две вещи, чтобы вызвать функцию, определенную вышеприведенным способом с параметром obj ЭСТ - либо передать этот селектор в виде строки и целевой элемент внутри функции ...

updateLinkedElements('#edit-type-config-associated-element'); 

или, во-вторых захватить элемент заранее и передать этот объект в качестве параметра функции

var el = document.getElementById('#edit-type-config-associated-element'); 

updateLinkedElements(el); 

, если вы ищете, чтобы использовать JQuery точечную нотацию вы бы использовать вышеупомянутый метод, чтобы сделать «плагин»

2

Вы можете использовать этот синтаксис, но вы должны по существу создать плагин JQuery, чтобы сделать это. Например:

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