是否可以将此javascript函数组合到JQuery中?

时间:2010-11-30 01:48:46

标签: jquery

我有一个用javascript编写的函数,我想知道如果可能的话,如何在我的JQuery文件中使用它。我正在使用以下函数,我的选择器ID是'#comments'。

同样,我想要做的只是将现在驻留在另一个文件中的这个函数合并到我的主JQuery文件中。这可能吗?

onkeydown="textCounter(this.form.notes, this.form.remLen,240); "onkeyup="textCounter(this.form.notes, this.form.remLen, 240);"

选择者ID是#comments。


function textCounter( field, countfield, maxlimit ){
if ( field.value.length > maxlimit )    {
    field.value = field.value.substring( 0, maxlimit );
}else{
    countfield.value = maxlimit - field.value.length;
}

2 个答案:

答案 0 :(得分:0)

是在函数textCounnter里面,添加Jquery的函数,在函数中触发函数吗?但是为什么tou想要javascript中的textCounter呢?

为什么不这样做

$(#评论){  ..textcounter里面的想法 }

答案 1 :(得分:0)

我不太确定你在问什么,但你可以在这些事件处理程序中轻松使用你自己的函数:

$(document).ready( function(){
  $('#comments').bind('keydown keyup', function(){
    textCounter( ...etc... );
  });
});

根据您的目的,您可能会更好地使用keypress事件:

  $('#comments').keypress( function(){...} );

Keypress具有以下功能:当按下某个键以进行自动重复时触发每个字符,而不会触发shift之类的键。使用keydownkeyup,您将为每个按下的键运行两次功能,这可能不是您想要的。


更新:如果您要做的就是截断并显示当前计数,为什么不做一个更简单的功能,如下所示:

function textCounter( field, countfield, limit ){
  field.value = field.value.substring(0,limit); 
  countfield.val( limit-field.value.length );
}

然后:

$('#comments').keypress( function(){
  textCounter(this, $('#bar'), 240 );
});

示例:http://jsfiddle.net/redler/c5sUU/1/