美好的一天,jQuery插件没有触发
我有一个窗体有两个文本框,并在其他页面上使用了下面的代码,所以我知道这是有效的。
$(document).on('focusout', '.rate', function() {
var thisTextbox = $(this).val();
if (thisTextbox.length > 0) {
var number = parseFloat(thisTextbox);
if (!isNaN(number))
$(this).val(String.format("{0:#,0.00}", number));
}
});
这将格式化数字(即45 => 45.00,1324 => 1,324.00)。它使用一个外部的String.format JavaScript库。对于那些感兴趣的人,我在这里找到了这个图书馆:http://www.masterdata.se/r/string_format_for_javascript/。下载链接位于左上角。
我现在将要使用在多个地方的代码,并希望创建一个插件,我可以调用,如:
$(".rate").setDollarAmount();
我的插件看起来像:
(function($) {
$.fn.setDollarAmount = function(options) {
var classActivator = 'rate';
return this.each(function() {
if ($(this).hasClass(classActivator)) {
$(document).on('focusout', classActivator, function() {
var thisTextbox = $(this).val();
if (thisTextbox.length > 0) {
var number = parseFloat(thisTextbox);
if (!isNaN(number))
$(this).val(String.format("{0:#,0.00}", number));
}
});
}
});
};
}( jQuery));
代码正在运行,当我加载页面,因为我可以通过它。但是当我从一个文本框移动到另一个文本框时,事件不会触发。
这里的HTML:
<form>
<input name="one" class="financial" />
<br />
<input name="two" />
</form>
<a href="http://www.nbcnews.com">My Link</a>
<script src="js/jquery-1.9.1.min.js"></script>
<script src="js/stringformat-1.09.min.js"></script>
<script src="js/jquery.greenify.js"></script>
<script src="js/dollarAmount.js"></script>
<script>
$(function() {
$("input[name=one]").setDollarAmount();
$('div').greenify({
text: 'Hola',
color: '#FF0000'
});
});
</script>
有什么我一样,我需要做的就是这个工作?
TIA,
COSON
你为什么要绑定到文件里面?只要绑定到元素。 – epascarello