Dig*_*Kev 3 jquery jquery-plugins
以下代码跟踪用户遍历表单完成的点击次数或标签数量,并添加行为评分:
$(function() {
$.fn.clickCount = function() {
var clickCount = 0;
var clickBehaviour = 0;
return {
increment: function() {
clickCount++;
},
behaviour: function() {
clickBehaviour -= 5;
},
print: function() {
console.log('Click count:' + clickCount);
console.log('Click behaviour:' + clickBehaviour);
}
};
};
$.fn.tabCount = function() {
var tabCount = 0;
var tabBehaviour = 0;
return {
increment: function() {
tabCount++;
},
behaviour: function() {
tabBehaviour += 5;
},
print: function() {
console.log('Tab count:' + tabCount);
console.log('Tab behaviour:' + tabBehaviour);
}
};
};
var $input = $('input, select, textarea');
var c = $.fn.clickCount();
var t = $.fn.tabCount();
$input.mousedown(function() {
c.increment();
c.behaviour();
c.print();
});
$input.keydown(function(e) {
var keyCode = e.keyCode || e.which;
if (e.keyCode === 9) {
$(this).each(function() {
t.increment();
t.behaviour();
t.print();
});
};
});
});
Run Code Online (Sandbox Code Playgroud)
我现在希望能够添加和值的值,clickBehaviour并tabBehaviour在每次单击或输出时将其输出到控制台tab
我试过这个,但凭借我有限的JavaScript知识,我不断回来 NaN
小智 8
你可以简单地getBehaviour()为每个插件添加一个方法,如下所示:
$.fn.clickCount = function() {
var clickCount = 0;
var clickBehaviour = 0;
return {
increment: function() {
clickCount++;
},
behaviour: function() {
clickBehaviour -= 5;
},
getBehaviour: function(){
return clickBehaviour;
}
print: function() {
console.log('Click count:' + clickCount);
console.log('Click behaviour:' + clickBehaviour);
}
};
};
Run Code Online (Sandbox Code Playgroud)
并使用以下代码打印它:
function printSum() {
console.log('Sum:' + (c.getBehaviour() + t.getBehaviour()));
}
printSum();
Run Code Online (Sandbox Code Playgroud)
这是jsfiddle.http://jsfiddle.net/FYAzw/
| 归档时间: |
|
| 查看次数: |
48838 次 |
| 最近记录: |