在jQuery上编写此函数的最佳方法是什么?
背景:我正在研究一个存在很多问题的遗留网络应用。它要求我们插入一个IFrame来处理一些“屏幕”。稍后这段代码将被重构,但现在我们需要这个。
function openIframePage(selectorPath, url) {
if ($(selectorPath).length > 0) {
$('#ifrPage').attr('src', url);
} else {
$(selectorPath).append('<iframe id="ifrPage" src="' + url + '" />');
}
}
function closeIframePage() {
$('#ifrPage').remove();
}
有没有更好的方法来写这个?大多数人如何绕过选择器?或者他们传递jQuery对象本身?不寻找插件。感谢。
答案 0 :(得分:3)
我会让函数将实际的jQuery对象作为参数,并在传递参数时调用$
。
这意味着选择器只会被评估一次。
例如:
function openIframePage(elem, url) {
if (elem.length > 0) {
$('#ifrPage').attr('src', url);
} else {
elem.append('<iframe id="ifrPage" src="' + url + '" />');
}
}
为了获得最大的灵活性,您可以编写elem = $(elem)
,然后传递几乎所有内容。