Javascript 有条件地将jQuery插件函数附加到站点上的元素
我想将jQuery插件函数附加到我的站点上只存在于一个页面上的元素。目前,我正在使用此条件来防止触发Javascript 有条件地将jQuery插件函数附加到站点上的元素,javascript,jquery,Javascript,Jquery,我想将jQuery插件函数附加到我的站点上只存在于一个页面上的元素。目前,我正在使用此条件来防止触发限制器功能,并在没有#广告客户描述时抛出错误 jQuery(document).ready(function($) { var elem = $('#charNum'); if ($('#advertiser_co_desc').length) { $('#advertiser_co_desc').limiter(180, elem); }
限制器
功能,并在没有#广告客户描述
时抛出错误
jQuery(document).ready(function($) {
var elem = $('#charNum');
if ($('#advertiser_co_desc').length) {
$('#advertiser_co_desc').limiter(180, elem);
}
});
在我的网站#上,广告客户只在一页上出现
我的解决方案完成了这项工作,但我的疑虑源于这样一个事实:浏览器会获取jQuery插件代码以及上面给出的插件函数调用(它们都在同一个文件中),并且无论用户是否访问过存在#advertiser__desc
的页面,都会持续评估条件
我使用的方法是最优的,还是有更好的方法只将这个特定的JS附加到存在“广告客户”的页面?当然,我希望避免将脚本与PHP代码添加到同一个文件中。通过jquery检查元素是否存在的最佳方法是$(“#advertiser_co_desc”)。您已经使用过的长度
。因此无需更改代码。或者您可以将插件方法包装为
var _limiter = $.fn.limiter;
$.fn.limiter = function(limit, element) { // provide complete argmuments
if(this.length) {
_limiter.call(limit, element);
}
};
确保在此语句之前加载插件。这是一个非常有趣的解决方案。