gpt4 book ai didi

javascript - jQuery 新手,简单的弹出窗口脚本,有问题吗?

转载 作者:行者123 更新时间:2023-12-02 20:44:01 25 4
gpt4 key购买 nike

关于 jQuery 还是有点“紧张”。这个简单的弹出窗口脚本看起来还可以吗?我的 jQuery 逻辑对吗?

代码注释中有几个问题我很好奇。

$( document ).ready( function()
{
$( "a[target='popup']" ).click( function( event )
{
var $href = $( this ).attr( 'href' ); // should I use "this.href"?
var $name = $( this ).attr( 'target' ); // does the window name matter?
var $config = 'width=590, height=590, top=20, left=60, scrollbars=1';
var $popup = window.open( $href, $name, $config );

if ( window.focus ) // is this even necessary?
// any other conditions I should check instead?
{
$popup.focus();
}
event.preventDefault(); // should this be above $popup.focus()?
});
});

它似乎有效,但由于此脚本对于在我的网站上获取 RSS 订阅者非常重要,因此我想我应该确定一下。

最佳答案

//我应该使用“this.href”吗?不,使用 jquery 选择器 - 如果您要经常使用 $(this),请在开始时将其放入变量中,这样您就不会每次都创建 jquery 对象的开销(您需要执行两次,所以你创建了一个 jquery 对象两次)。

//窗口名称重要吗?如果您想稍后对窗口执行任何操作,例如关闭它或更改其位置,您将需要该名称。它只是窗口的句柄。

//这还有必要吗?这只是确保您可以执行您将要尝试的操作 - 这是一个功能测试,以确保您不会在 focus() 方法不可用时生成错误。

//我应该检查其他条件吗?不 - 测试您将调用的函数(当您聚焦弹出窗口时调用它)。

//这应该在 $popup.focus() 之上吗?不。最好将其留到最后,因为这是其他开发人员会寻找它的地方。首先完成您想做的所有事情,然后将其弹出以阻止事件冒泡。

最后,变量名上的 $ 前缀是什么意思?您可能希望为 PHP 保留这种做法,因为 $ 现在是 jquery 的句柄。

$(document).ready( function() {
$("a[target='popup']").click( function(event) {
var myObject = $(this);
var href = myObject.attr("href");
var name = myObject.attr("target");
var config = "width=590, height=590, top=20, left=60, scrollbars=1";
var popup = window.open(href, name, config);

if ( window.focus ) {
popup.focus();
}
event.preventDefault();
});
});

关于javascript - jQuery 新手,简单的弹出窗口脚本,有问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1756099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com