我已经写了这个插件来打开新窗口的链接但是不起作用 什么可能出错?
(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();
答案 0 :(得分:0)
而不是这个
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);
});
Here您可以找到使用window.open()
的示例。另请阅读doc:
请记住,目标对象(第一个参数)将被修改, 并且还将从$ .extend()返回。但是,如果你想 保留两个原始对象,你可以通过传递一个 空对象作为目标:
var object = $ .extend({},object1,object2);
希望这对你有所帮助。
答案 1 :(得分:-1)
我认为你缺少扩展函数中的选项声明变量,第二个参数尚未定义。
(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();
祝其他代码好运。
利奥。