我對jQuery相當陌生,我需要解決一個選擇問題。我有很多觸發器,其中class="trigger"
,jQuery插件功能myFunc
被調用。如何將jQuery選擇器鏈傳遞給我的插件?
觸發器可以是圖像或鏈接,並且每個觸發器必須將指向class="target"
的輸入字段(文本框或文本區)。
下面是一個例子,但請注意,targets
可能先或遵循在之間的一些元素triggers
最終:
<a class="trigger">trigger 1</a>
<input class="target" type="text" /><!-- target for trigger 1 -->
<a class="trigger">trigger 2</a>
<textarea class="target"></textarea><!-- target for trigger 2 -->
問題是我需要通過一個targetSelector
(如.next('.target')
或其他取決於DOM的東西)插入到我的插件中,以獲得每個觸發器的每個目標元素:
$('.trigger').myFunc({ // Plugin invokation
targetSelector : <code here> // Pass something like .next('.target')
});
(function($) { // Plugin defininition
$.fn.myFunc = function(options) {
this.each(function() { // Iterate each trigger
var target = <code here>; // Get target for current trigger
};
};
})(jQuery);
這隻會找到觸發後的人,他提到自己的目標可能是觸發因素,這將需要也檢查之前,.prev – 2012-01-07 10:27:28
@Patrick:這只是相應地設置傳遞給'targetSelector'的函數。我認爲這個問題更多的是關於一般方法而不是具體情況。 – 2012-01-07 10:31:05
我喜歡你的答案,並贊成它。但是,如何處理(極少數情況下)target1在trigger1之前而target2在trigger2之後? – gremo 2012-01-07 11:06:42