如何在jquery中使用.on从外部函数清除点击计数器
How to clear click counter from outside function with .on in jquery?
我有一个函数。on()像这样:
$('#gallery').on('click', '.gon', function() {
countn = ($(this).data("click_count") || 0) + 1;
$(this).data("click_count", countn);
// set up for first move
if ( countn == 1 ) {
do something........
countn是计算点击次数的变量。现在我想从这个函数外部清除或重置"count",比如:
$('.teaserbox').click(function() {
countn = 0;
return false;
});
这行不通。有没有办法从外部清除/重置第一个函数内部的变量?
count值被存储为点击对象上的数据,在重置函数中重置变量countn
没有任何作用,因为countn之前没有在该作用域中定义。
我不知道你是否在#gallery
中有多个.gon
元素,但如果你这样做,你真的只能重置它们。就像这样
$('.teaserbox').click(function() {
$('#gallery .gon').data('click_count', 0);
});
您当然可以在find()
事件中使用.teaserbox
(它将是函数中的$(this)
)来查找正确的.gon
元素并仅重置该元素的计数。
另一个注意事项,你忘记了你的var
语句在你的函数,这是重要的,因为隐式声明变量会导致各种各样的问题。
变量count应该可以从两个函数中访问。我把所有东西都放在一个匿名函数中,所以只有两个click事件处理程序可以访问变量。
(function () {
var countn=0;
$('#gallery').on('click', '.gon', function() {
// increment countn
});
$('.teaserbox').click(function() {
// reset countn
});
})();
如果在两个函数之外声明countn
,您应该能够做到这一点。比如:
$(document).ready(function() {
var count = 0;
$('#gallery').on('click', '.gon', function() {
countn = ($(this).data("click_count") || 0) + 1;
$(this).data("click_count", countn);
// set up for first move
if ( countn == 1 ) {
do something........
}
$('.teaserbox').click(function() {
countn = 0;
return false;
});
});
相关文章:
- 从外部函数渲染后更改ReactJS类的状态
- 函数从$(document).ready外部调用在$(document).ready中定义的函数
- Javascript从匿名函数访问外部对象属性
- 使用promise通过外部函数从DOM中检索属性
- 如何检查该函数是否从外部js文件调用
- 从外部函数(数组)了解返回函数(x)
- 从jQuery.ech()函数访问外部作用域
- 如何调用Edge Animate's从外部Javascript中播放函数
- 如何将闭包从外部函数中提取出来,以便在不同的上下文中重用所述闭包
- 从外部函数获取参数名称
- 得到"未定义“;从外部javascript加载函数
- 我从闭包返回的函数在外部范围内是否可用
- 如何从外部JavaScript文件获取函数参数
- 从外部主体函数调用自调用函数
- Colvis 从外部函数中动态排除列
- 使用调试器从内部函数调用外部函数中定义的变量
- HTML 从外部 JavaScript 文件触发函数并返回 cookie
- 为什么这个javascript函数从外部链接的文件在我的Rails视图中未定义
- 在TypeScript中以类型安全的方式用静态函数从外部库扩展一个类
- 函数从外部js