jQuery:使用 var 快捷方式分配数据以及如何链接功能以在加载和单击时运行
jQuery: use var shortcut to assign data and how to chain function to run on load and click
我有一个由两部分组成的问题。
一:我可以使用我设置的last
变量来更新if (!last) {
后行的值last = size;
吗?
var j$ = jQuery.noConflict();
function updateCount() {
var self = j$(this),
last = self.data('last'),
size = self.val().length,
span = j$('.currentCount');
if (!last) {
self.data('last', size);
} else if (last != size) {
span.text(size);
self.data('last', size);
}
}
j$('textarea[id$=textBody]').on('propertychange change click keyup input paste', updateCount);
其次,我可以链接我的.on('propertychange ...
行以使脚本加载后立即运行updateCount
吗?
问题 1:
不,你不能简单地使用变量的赋值,因为jQuery中没有数据绑定。因此last
更新变量永远不会更新 jQuery 对象的data-last
。
问题2:
这是我习惯做的事情:
j$('textarea[id$=textBody]').on('propertychange change ...', updateCount).change();
其中change()
自动触发函数。
对于问题 1:不,你不能。如果您希望数据绑定工作,您可以尝试 AngularJS,其中 UI 和模型之间的 2 路数据绑定是可能的。
Q2:我的解决方案是这样的使用即时函数
$('textarea[id$=textBody]').on('propertychange change click keyup input paste', (function(){
updateCount();
return updateCount;
}()));
last
变量在 self.data('last')
中有一个值的副本,它不是一个指针,所以你必须做这样的事情:
last = size;
self.data('last', last);
对于第二个问题,您可以触发事件或仅调用函数:
j$('textarea[id$=textBody]').trigger('propertychange');
// or
j$('textarea[id$=textBody]').each(updateCount);
相关文章:
- 如何绑定多个具有相同敲除功能、传递不同ID的链接
- 功能点击使打开新链接,不转到原始链接
- 修复Javascript代码以将文本中的所有Youtube链接转换为Youtube ID功能
- 如何在用户提交链接时添加提取推文并将其发布到站点的功能
- 具有双重功能的按钮:在_blank窗口中打开一个链接,再加上_self中的另一个链接
- 通过模糊功能传递链接,而不是单击另一个链接
- AngularJS:在指令's链接功能
- 如何在链接上附加onclick事件以使用javascript功能
- 在链接中禁用window onbeforenload功能
- 如何使用Foundaton 6更改小屏幕上顶级链接的功能
- DOM在指令中未就绪's链接功能.hacky Timeout是唯一的解决方案吗
- 如何禁用滚动但保留使用锚链接滚动的功能
- 是的,没有带有链接的JavaScript删除功能的选项
- 链接功能中的角度单元测试$attrs
- 链接的按钮按住功能
- 当用户单击滚动页面的锚链接时,是否可以禁用 .scroll 功能
- 附加链接上的单击功能不起作用
- jQuery:使用 var 快捷方式分配数据以及如何链接功能以在加载和单击时运行
- onClick功能链接不工作
- NodeJS mongo - 参考唯一生成的点击功能链接