2016-01-09 4 views
1

В чем разница между вызовом $ .confirm и confirm() в плагине?

var jconfirm, Jconfirm; 
(function ($) { 
    "use strict"; 
    $.fn.confirm = function (options) { 
     if(typeof options === 'undefined') options = {}; 
     /* 
     * Alias of jconfirm to emulate native confirm 
     */ 
     var $this = $(this); 
     $this.on('click', function (e) { 
      e.preventDefault(); 
      if ($this.attr('href')) 
       options['confirm'] = function() { 
        location.href = $this.attr('href'); 
       }; 
      $.confirm(options); 
     }); 
     return $this; 
    }; 
    $.confirm = function (options) { <-- HERE 
     /* 
     * Alias of jconfirm 
     */ 
     return jconfirm(options); 
    }; 

ответ

0

Первый $.confirm()confirm().

confirm() является встроенной функцией JavaScript, которая возвращает логическое значение:

$.confirm определяется пользователем/плагин, используя этот путь:

$.confirm = function() { 
    // stuff 
} 

// or using $.fn.extend. 
$.fn.extend({ 
    confirm: function(options) { 
     var defaults = { 
     }; 
     options = $.extend(defaults, options); 
     return this; 
    } 
}); 

Решение

В вашем случае jConfirm, i t использует функцию обратного вызова. Итак, что бы вы ни делали, нужно выполнить функцию обратного вызова:

jConfirm('Some Title', 'Are you sure you want to delete your profile photo?', function(r) { 
    // here `r` will be `true` or `false`. 
    alert(r); 
}); 
+0

Спасибо, так какая разница между $ .myFunction и myFunction? Почему я должен использовать '$ .' вместо имени функции? – Paul

+0

@Paul '$ .' перед любой функцией означает, что это функция-член объекта' $ '. Здесь '$' - это объект jQuery, а 'confirm' - объект' ''. Понял? –

+0

Я согласен, не волнуйтесь, я не совсем уверен, что вы имеете в виду: что это значит, что я использую '$ .' вместо того, чтобы просто называть имя функции? Я знаю «это» внутри плагина или просто вызываю функцию, но я не уверен, что именно «$» делает именно так. – Paul

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