我想将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代码在同一个文件中添加我的脚本。
答案 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
。所以无需更改代码。