Javascript 编写jquery插件以在新窗口中打开链接
我写这个插件是为了打开新窗口的链接,但不起作用 知道哪里出了问题吗Javascript 编写jquery插件以在新窗口中打开链接,javascript,jquery,html,jquery-plugins,window.open,Javascript,Jquery,Html,Jquery Plugins,Window.open,我写这个插件是为了打开新窗口的链接,但不起作用 知道哪里出了问题吗 (function( $ ) { $.fn.myPlugin = function() { var defaults = { width: 800, height: 700, scrollbars: 1, location: 1, status: 1 },
(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();
我认为您缺少了extend函数中的options declatarion变量,第二个参数尚未定义
(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();
祝您在代码的其余部分好运
狮子座。取而代之的是这个
opts = $.extend(defaults, options);
this.filter('a').click(function() {
$("a").attr("target","_self");
window.open($(this).attr('href'),'title', opts);
return this;
});
尝试:
您可以找到使用window.open的示例。另见:
请记住,目标对象的第一个参数将被修改,
并且还将从$.extend返回。但是,如果你想
保留两个原始对象,可以通过传递
将空对象作为目标:
var object=$.extend{},object1,object2
希望这对您有所帮助。新窗口还是新选项卡@我想他想在一个新窗口中打开链接,所以target=\u blank不能这样做。我想你最好在做任何事情之前阅读这篇文章。就在新窗口。是的,我想尝试同样的插件。如果为它编写一个函数,它就可以工作,但是如果我想将它作为插件来编写,它就不能工作。建议您对基本插件的创建做更多的研究解释这些差异以及它对OP的帮助。不要让人们去寻找这些差异。或者,解释没有被复制,我已经更新了答案,干杯。选项在$中使用时仍然未定义。实际上是,这就是它不显示新窗口的原因,请尝试代码;我不是OP。。。我指出选项是未定义的。这不是如何扩展插件选项
opts = $.extend({}, defaults, options);
$('a').click(function(){
window.open($(this).attr('href'),'title', opts);
});