2014-02-19 49 views
0

我是編寫JQuery插件的新手......並且有一個關於返回用於綁定插件的選擇器的問題。如何檢索jquery插件附加到的目標元素?

比方說,我們重視一個jQuery插件,像這樣的元素...

$(".someClass").viEdit(); 

這是插件...

(function ($) { 
    $.fn.viEdit = function() { 

     var myTarget = "????"; // See Below 

    }; 
}(jQuery)); 

現在......我怎樣才能檢索用於綁定jQuery的目標?

我不是指$(this),我在尋找.someClass在這種情況下。

作爲第二個例子,如果它被設置這樣的...

$("#myElement").viEdit(); 

我要尋找...

#myElement 

任何幫助將不勝感激!

+0

據我所知一個選項,則無法可靠地做到這一點,你可以傳遞到$一個元素,而沒有選擇的文字像你描述。 – dandavis

回答

1

您可以使用this.selector

http://jsfiddle.net/3NAwD/

(function ($) { 
    $.fn.viEdit = function() { 

     console.log(this.selector); 

    }; 
}(jQuery)); 

注意,像$(document.getElementById('someId')).viEdit();會給你一張空白selector

+0

好吧,我看到這是工作,並感謝您的答案!文檔顯示這已被棄用,並在v1.9中刪除,但它似乎仍然工作。 http://api.jquery.com/selector/ – VIDesignz

+0

有趣的是,我的小提琴使用1.11,它工作正常。 –

+0

我知道,這對我也沒有意義。我想知道是否有這方面的工作。 – VIDesignz

1

有一個.selector屬性,在較新的版本中不推薦使用該屬性。

現在的建議的方法是把它作爲像

(function ($) { 
    $.fn.viEdit = function (options) { 

     var myTarget = options.target; 

    }; 
}(jQuery)); 

$("#myElement").viEdit({ 
    target: '#myElement' 
}); 
+0

我看到......這使得啓動它的工作兩倍...... geez – VIDesignz

+0

@VIDesignz這是因爲我們不能總是相信'selector'屬性的值...假設像'$('。myclass')。 filter('[myattribute]')。myplugin()'那麼'selector'的值應該是什麼 –