我有一个网站,其中包含针对特定元素的以下代码:

<textarea id="textToTranslate" onfinishinput="dothis()" rows="5"></textarea>


onfinishinput等待用户输入并检查他是否已停止。如果他停止键入,则通过$('#waitUserInput')。live()函数调用此函数。
我的问题的棘手部分是,如何将上述行完全更改为jQuery。

jQuery dat对应于dothis()函数,如下所示:

// Detect if user input stops
$('#waitUserInput').live("keyup", function(e)
{
    startTypingTimer($(e.target));
});


var typingTimeout;
function startTypingTimer(input_field)
{
    if (typingTimeout != undefined)
        clearTimeout(typingTimeout);
    typingTimeout = setTimeout( function()
    {
        eval(input_field.attr("onfinishinput"));
    }
    , 250);
}


JavaScript dothis()函数:

function dothis(){
   // Ajax call when called
{


现在,当我进入http://validator.w3.org时,我遇到一个错误,是的,它与上面的代码有关:
此时,元素textarea上不允许使用onfinishinput属性。

<textarea id="textToTranslate" onfinishinput="dothis()" rows="5"></textarea>


问题是,是否有可能将onfinishinput javascript属性从textarea中移出,但是功能是否相同?

我知道这有点复杂,但是我希望有人可以提供帮助。

最佳答案

为什么不改变呢?

eval(input_field.attr("onfinishinput"));


至:

dothis();


然后从您的文本区域中删除“ onfinishinput”属性?

07-24 14:53