В jQuery фрагмент документа, строка или объект были переданы в конструктор? - PullRequest
1 голос
/ 06 января 2012

Я хотел бы знать, как я могу определить в своем плагине, передал ли пользователь фрагмент документа или строку DOM - или они передали реальный объект.Если они передаются в строке DOM или во фрагмент документа, мне нужно .appendTo('body')

$('p.my_plugin').myPlugin();
// or
$(object).myPlugin();
// vs
$('<p>My string</p>').myPlugin();

Базовая оболочка плагина

(function($){
    var methods = {
        init : function(options) {
            return this.each(function() {
                console.log(this);
                ....

Ответы [ 3 ]

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

Я не слишком проверял это, и я не уверен, что это правильно, но this.is('*'), кажется, работает.

$('p.my_plugin').is('*');  // true

$(object).is('*'); // false

$('<p>My string</p>').is('*'); // true
0 голосов
/ 06 января 2012
if (typeof this[0] === 'object') {
    // they passed an object
} else {
    // they passed something else (a string, for example)
}
0 голосов
/ 06 января 2012

Я бы просто проверил, есть ли у элемента родительский элемент:

if(!this.parent().length) {
    this.appendTo($('body'));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...