编写一个jquery插件在新窗口中打开链接

Write a jquery plugin to open a link in new window

本文关键字:jquery 插件 在新窗口中打开 链接 一个      更新时间:2023-09-26

我已经写了这个插件打开链接到新的窗口,但不工作知道哪里出了问题吗?

(function( $ ) {
     $.fn.myPlugin = function() {
        var defaults = {
            width: 800,
            height: 700,
            scrollbars: 1,
            location: 1,
            status: 1       
        },
        self = this,
        opts = $.extend(defaults, options);
        this.filter('a').click(function() {
            $("a").attr("target","_self");
            window.open($(this).attr('href'),'title', opts);
            return this;
        });
    };
}( jQuery )); 
$('a').myPlugin();

代替

   opts = $.extend(defaults, options);
   this.filter('a').click(function() {
        $("a").attr("target","_self");
        window.open($(this).attr('href'),'title', opts);
        return this;
    });

试题:

opts = $.extend({}, defaults, options);
$('a').click(function(){
   window.open($(this).attr('href'),'title', opts);
});

您可以在这里找到使用window.open()的示例。另请阅读doc:

请记住目标对象(第一个参数)将被修改,并且也将从$.extend()返回。不过,如果你愿意的话保留两个原始对象,您可以通过传递空对象作为目标:

var object = $。Extend ({}, object1, object2);

我想你错过了扩展函数中的选项声明变量,第二个参数还没有定义。

(function( $ ) {
     $.fn.myPlugin = function() {
        var defaults = {
            width: 800,
            height: 700,
            scrollbars: 1,
            location: 1,
            status: 1       
        },
        options,   //<-------- This one right here !
        self = this,
        opts = $.extend(defaults, options);
        this.filter('a').click(function() {
            $("a").attr("target","_self");
            window.open($(this).attr('href'),'title', opts);
            return this;
        });
    };
}( jQuery )); 
$('a').myPlugin();

祝你其余的代码顺利。

狮子座。