0

B2:

请不要使用下面的片段来设置样式以响应用户操作而改变 -> 即模糊、焦点、按键。

它是自包含的……只需给它一个元素 id 数组,它就会设置样式以在某些事件上更改。

我应该将它放在模型、视图或控制器中的哪个模块?

function styleTwitter1( pair_array )
{
    var i;
    var input;
    var label;
    for ( i = 0; i < pair_array.length; i+=2 ) 
    {
        input = document.getElementById( pair_array[ i ] );
        label = document.getElementById( pair_array[ i + 1 ] );
        label.style.fontSize = window.getComputedStyle( label, null ).getPropertyValue("font-size");
        closureBuster( input, label );
    }
    function closureBuster( input, label )
    {
        input.addEventListener( "keypress", function()
        { 
            label.style.opacity = 0; 
        }, false );
        input.addEventListener( "focus", function()
        { 
            if( input.value === '' )
            {
                label.style.opacity = 0.2; 
                input.style.border = '1px solid #888888'; 
            }
        } , false );
        input.addEventListener( "blur", function()
        {
            if( input.value === '' )
            {
                label.style.opacity = 1;
                new EffectsFont( label ).fade( 'up', 150 );
                input.style.border = '1px solid #dddddd'; 
            }   
        } , false );
    }
}
4

2 回答 2

2

在 MVC 中,视图

观察状态并生成输出给用户

因此,用户看到的所有内容(渲染、样式、...)并与之交互,都应该转到视图。

于 2012-05-20T22:01:04.680 回答
0

视图向用户显示所有输出,因此与可见性相关的任何内容都将在视图中处理。因此,为了获得最佳性能和结果,您应该遵循以下步骤

将您的 java 脚本函数放在一个单独的 js 文件中,在要调用所需函数并将元素数组作为参数传递的每个页面(块中)的顶部写一个 $(document).ready() 函数

这样,您的代码将整洁、可重用和可读

于 2012-05-21T04:44:46.747 回答