javascript - 获取动态调用jquery函数的元素宽度
问题描述
我正在使用这个名为jquery-splitflap 的函数。
这是我的 HTML 代码:
<div class="do-splitflap"></div>
<script>
(function ($) {
$(document).ready(function () {
$('.do-splitflap')
.splitFlap();
});
})(jQuery);
</script>
在 js/jquery 文件中,如何获取调用函数的 div 的宽度.splitFlap()
?我目前正在使用this.divWidth = $(".do-splitflap").width();
它并且工作正常,但我不想将 classNamedo-splitflap
放在 js 文件中。有没有办法动态获取函数调用者的宽度?我对 jquery/js 很陌生。
我认为有用的js文件的jquery部分是
/***************************************************************************
* SplitFlap
**************************************************************************/
function SplitFlap(settings) {
this.settings = settings;
this.domObject = document.createElement('div');
this.letters = new Array();
$(this.domObject).addClass("splitflap");
/* CODE I ADDED */
this.divWidth = $(".do-splitflap").width();
}
我相信这是定义函数的地方,但我不是 100% 确定
this.splitflap = new SplitFlap(settings);
this.splitflap.build(text.length);
这是 jquery 插件的演示。
解决方案
我能够弄清楚.width
在 js 文件中的确切位置。
$.fn.splitFlap = function (options) {
...
var divWidth = this.width();
...
this.splitflap = new SplitFlap(settings, divWidth);
...
/***************************************************************************
* SplitFlap
**************************************************************************/
function SplitFlap(settings, divWidth) {
this.settings = settings;
this.domObject = document.createElement('div');
this.letters = new Array();
$(this.domObject).addClass("splitflap");
/* CODE I ADDED */
this.divWidth = divWidth;
}
这是非常基本的 jquery/js。我今天早些时候只是愚蠢的。
推荐阅读
- django - 如何删除 django 用户模型中的名字和姓氏列?
- c# - 无法将 Excel 文件上传到 Azure 存储 Blob
- pandas - 在 Pandas 中熔化多个列
- ruby - RSpec中需要按值对hash进行排序的测试方法
- php - PayPal地址验证以拒绝非住宅关键字
- flutter - Flutter:将缓存的(.file)文件转换为mp4文件
- couchdb - 有没有办法使用超级账本结构为 couchDB 中的不同合同设置不同的索引
- json - YAML_FILE_ERROR:没有找到预期的密钥
- java - 为什么编译器不为扩展接口的泛型强制执行返回类型值?
- node.js - 在没有猫鼬的情况下使用 .aggregate 和 node.js