【问题标题】:Idiomatic jQuery and selector paths in functions函数中的惯用 jQuery 和选择器路径
【发布时间】:2010-05-28 15:35:16
【问题描述】:

在 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 对象本身?不是在找插件。谢谢。

【问题讨论】:

    标签: javascript jquery iframe jquery-selectors


    【解决方案1】:

    我会让函数接受一个实际的 jQuery 对象作为参数,并在传递参数时调用$
    这意味着选择器只会被评估一次。

    例如:

    function openIframePage(elem, url) {
        if (elem.length > 0) {
          $('#ifrPage').attr('src', url);
        } else {
          elem.append('<iframe id="ifrPage" src="' + url + '" />');
        }
    }
    

    为了获得最大的灵活性,您可以写elem = $(elem),然后传递几乎所有内容。

    【讨论】:

    • 叫elem正常吗?我的意思是我知道你可以。但我从风格的角度思考,因为它真的是 jQuery 对象。
    • 我不确定。你可以叫它objtarget,或者iframe
    • 它将返回一个单独的具有相同内容的jQuery对象。
    猜你喜欢
    • 1970-01-01
    • 2012-10-02
    • 2013-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-30
    • 2016-06-08
    • 1970-01-01
    相关资源
    最近更新 更多