有条件地将jQuery插件函数附加到网站上的元素

时间:2015-03-15 22:49:16

标签: javascript jquery

我想将jQuery插件函数附加到我网站上仅存在于一个页面上的元素。目前,我使用此条件来阻止触发limiter函数并在视图中没有#advertiser_co_desc时抛出错误。

jQuery(document).ready(function($) {
    var elem = $('#charNum');
    if ($('#advertiser_co_desc').length) {
        $('#advertiser_co_desc').limiter(180, elem);        
    }
});

在我的网站上#advertiser_co_desc仅出现在一个页面上。

我的解决方案完成了这项工作,但我的质疑源于这样一个事实,即jQuery插件代码以及上面提到的插件函数调用(它们都在同一个文件中)被浏览器获取并且条件被持续评估无论用户是否访问过#advertiser_co_desc存在的页面。

我使用的方法是否是最优的,或者是否有更好的方法将此特定的JS仅附加到'#advertiser_co_desc`存在的页面?当然,我想避免使用PHP代码在同一个文件中添加我的脚本。

2 个答案:

答案 0 :(得分:1)

或者您可以将插件方法包装为,

var _limiter = $.fn.limiter;

$.fn.limiter = function(limit, element) { // provide complete argmuments
    if(this.length) {
        _limiter.call(limit, element);
    }
};

确保在此声明之前加载了插件。

答案 1 :(得分:0)

通过jquery检查元素是否存在的最佳和最佳方法是已经使用过的$('#advertiser_co_desc').length。所以无需更改代码。