我做asp.net 很讨厌js.
语句乱七八糟,难以理解。没有智能提示。
但是现在发现很多好的用户体验的项目 都要用到JS,我也看了一些源码。有个体会,感觉js很难学。不知道如何下手,ide没有智能提示,看一些开源的项目,但自己做起来的时候,又不知道如何去写。我想问下高手  ,JS该怎么学???3Q

解决方案 »

  1.   

    喜爱之
    同意!
    如果你永远觉得它垃圾你就永远用不好。调javascript是很好玩的!
    也能实现很多无聊的功能。
    javascript是真正为用户写的语言,要好好对待
      

  2.   

    既然讨厌就不要搞了 学javascript最难的就是调试
      

  3.   

    呵呵~~怕苦当什么程序员啊。如果写程序没有BUG,那就根本不需要程序员当程序员就是吃这碗饭的,要不叫狗去编程好了
      

  4.   

    我觉得学习最好的方法就是网上找,需要什么找什么。直接copy 拿过来用。自己写太麻烦了。时间长了,就OK了
      

  5.   

    很有意思,可以实现很多网页效果,不会就查msdn慢慢的就能积累很多的经验了
      

  6.   

    鸟兽他妈胡扯。。废话那个程序没bug,但是JS不容易找错,改错。JS调试麻烦。我不是怕苦,是找不到学习的方法。
    就看个 拖拽的脚本 看了我快3天了 还没看懂。我都觉得耽误时间。
    一条语句几个属性,方法都要查半天
    属性,方法 不知道什么意思。总的上网查,有的网上还不好查出来。效率太慢了。
    比如:       var evt = e || window.event;
           var evtTarget = evt.target || evt.srcElement;  evt.target 和evt.srcElement 着两个属性 是什么意思啊????
      

  7.   

    你用VB还是C# 
    VB的可能性大点建议先把基础看下在去看代码 比如 变量,运算符,条件语句之类的
      

  8.   

    event 对象的属性
    target window名
    srcElement 设置或获取触发事件的对象。不过说实在的你拿这么个javascript源码上手确实有点问题!
    对于新手来说太难了
    你可以上网找个
    DHTML 手册
    chm格式的,应该能解决你一些问题
      

  9.   

    var evt = e || window.event;
           var evtTarget = evt.target || evt.srcElement;  
    这段话的意思是当有事件触发的时候取得触发事件的对象
    比如把页面内一个输入框的内容改了,就能通过这段定位到这个输入框
      

  10.   

    我用C#  
    js变量 运算符 条件语句 我看了 也就那么一点东西。正是因为太简单了,下来写起来才麻烦。
    实际项目里  属性 方法就多了就不知道什么意思了。而且我有个问题 没有智能提示,是不是要把每个属性都记住才行???
      

  11.   

    var evt = e || window.event;
    一有事件  这条语句就执行???
      

  12.   

    <script language="javascript" type="text/javascript">var mouseState = 'up';
    var clone = null; 
    var totalPurchase = 0.0; 
    var dropZoneArray = new Array(1); 
    dropZoneArray[0] = "dZone";
    var titlePattern = ".+_lblTitle$"
    var pricePattern = ".+_lblPrice$"
    var dragElementPattern = ".+_a$";var uniqueNumber = 1; function ResetColor() 
    {
        document.getElementById("dZone").className = 'DefaultDropZoneColor';   
    }function IsInDropZone(evtTarget) 
    {     
        var result = false;  
       
        // iterate through the array and find it the id exists 
        for(i = 0; i < dropZoneArray.length; i++) 
        {
            if(evtTarget.id == dropZoneArray[i]) 
            {
                result = true; 
                break; 
            }
        } 
        
        return result;
    }function MakeElementDraggable(obj) 
    {    
        var startX = 0; 
        var startY = 0; 
            
    function InitiateDrag(e) 
    {    
        mouseState = 'down';
        
        var evt = e || window.event;
        
        startX = parseInt(evt.clientX); 
        startY = parseInt(evt.clientY);    
        
        clone = obj.cloneNode(true);
               
        clone.style.position = 'absolute';   
        clone.style.top = parseInt(startY) + 'px';
        clone.style.left = parseInt(startX) + 'px';  
        
        document.body.appendChild(clone);     
        
        document.onmousemove = Drag;
        document.onmouseup = Drop;  
        
        return false;             
    }function Drop(e) 
    {
           var evt = e || window.event;
           var evtTarget = evt.target || evt.srcElement;                          
                
           var dZone = document.getElementById("dZone"); 
            
            if( evt.clientX > dZone.offsetLeft && evt.clientX < (dZone.offsetLeft + dZone.offsetWidth) 
                && evt.clientY > dZone.offsetTop && evt.clientY < (dZone.offsetTop + dZone.offsetHeight))
                {               
                    AddPrice(); 
                }    
                  
            document.onmouseup = null; 
            document.onmousemove = null;               
           
            document.body.removeChild(clone); 
            mouseState = 'up';
            ResetColor();   
           
    }function AddPrice() 
    {   
              
       var title = GetProductTitle();
       var price = GetProductPrice(); 
       
           
        var dZone = document.getElementById("dZone"); 
        var textNode = document.createTextNode(title);    
        var priceNode = document.createTextNode(price); 
            
        var spaceNode = document.createTextNode(':  $');   
        var paragraphElement = document.createElement('p');
        
        // create the delete button 
        
        var deleteButton = document.createElement('button');
        deleteButton.value = 'Delete';
        deleteButton.innerHTML = 'Delete';
        deleteButton.onclick = DeleteItem;
        
        var item = document.createElement('div'); 
        item.id = 'itemDiv' + uniqueNumber; 
          
        item.appendChild(paragraphElement);     
        item.appendChild(textNode); 
        item.appendChild(spaceNode); 
        item.appendChild(priceNode); 
        item.appendChild(spaceNode); 
        item.appendChild(deleteButton);
        
        dZone.appendChild(item);  
        
        // increment the price
        IncrementTotal(price);
        uniqueNumber++; 
        
    }function DeleteItem(e) 
    {    
        var evt = e || window.event;
        var evtTarget = evt.target || evt.srcElement;
        
        if(IsFireFox()) 
        {
            price = evtTarget.parentNode.childNodes[2].nodeValue; 
            evtTarget.parentNode.parentNode.removeChild(evtTarget.parentNode); 
        }    
        else
        {      
        price = evtTarget.parentElement.childNodes[2].nodeValue;
        evtTarget.parentElement.parentElement.removeChild(evtTarget.parentElement); 
        } 
           
        DecrementTotal(price); 
    }function DecrementTotal(price) 
    {
        totalPurchase -= Math.ceil(Number(price)); 
        document.getElementById("divTotal").innerHTML = totalPurchase; 
    }function IncrementTotal(price) 
    {      
        totalPurchase += Math.ceil(Number(price)); 
        document.getElementById("divTotal").innerHTML = totalPurchase; 
    }function GetProductPrice() 
    {
        var price = '';  
        
        if(IsFireFox()) {        
        price = (clone.childNodes[3].innerHTML);          
        }
        else price = (clone.childNodes[2].innerHTML); 
       
       
        return price;    
    }function GetProductTitle() 
    {
       
        var title = '';   
        
        if(IsFireFox()) 
        {
        title = clone.childNodes[1].innerHTML; 
        
        }
        
        else { title = clone.childNodes[0].innerHTML;  }    
        
       return title; 
    }function IsFireFox() 
    {
        if(navigator.appName == 'Netscape') 
         return true; 
         else return false; 
    }
    function Drag(e) 
    {
       
        if(mouseState == 'down') {
          
        // only drag when the mouse is down  
        var evt = e || window.event;
        
        var evtTarget = evt.target || evt.srcElement;    
        
        clone.style.top = evt.clientY + 'px'; 
        clone.style.left = evt.clientX + 'px';
        
         // Check if we are in the drop Zone 
        if(IsInDropZone(evtTarget)) 
        {   
           
            evtTarget.className = 'highlightDropZone';       
        }
        
        else 
        {  
            ResetColor();          
        }
        
        } 
        
    }obj.onmousedown = InitiateDrag;}function IsMatch(id, pattern) 
    {
        var regularExpresssion = new RegExp(pattern);
        if(id.match(regularExpresssion)) return true;
        else return false;
    }var divElements = document.getElementsByTagName("div");      for(i=0;i<divElements.length;i++) 
    {   
        
        if(IsMatch(divElements[i].id, dragElementPattern)) 
        {            
            MakeElementDraggable(divElements[i]);  
        }
    }
    </script>
    我没看到有哪调用这个函数了···
      

  13.   

    <body id="documentBody">
        <form id="form1" runat="server">
            <asp:ScriptManager ID="ScriptManager1" runat="server" />
            <div>
            
           <div  id="dZone" style="position:absolute;top:295px; left:526px; width:300px; overflow:auto; height:300px" class="DefaultDropZoneColor">
        Shopping Cart        
        
        Total: $ <div class="totalBox" id="divTotal">0.00</div>      
        </div>            
                                   
                    <asp:DataList  Height="100%" Width="100%" ID="dlToys" runat="server" RepeatColumns="3" CellPadding="20" CellSpacing="20">
                    
                   <ItemTemplate>           
                                  
                   <div ID="a" runat = "server" class="dragElement">
                   <asp:Label ID="lblTitle" runat="server" Text='<%# Eval("Title") %>'  />
                   <asp:Label ID="lblPrice" runat="server" Text = '<%# Eval("Price") %>' />
                   <asp:Image ID="imgPicture" runat="server" ImageUrl='<%# Eval("ImageUrl") %>' />
                   
                   </div>          
                                   
                    </ItemTemplate>               
                     
                    </asp:DataList>
                    
                                   
                 </div>                 
            
        </form>
    </body>
    </html>
      

  14.   

    var evt = e || window.event;如果是 ff那 evt=e 
    如果是 ie那 evt=window.event
    大概应该是这样吧 function **(e){
        …
         var evt = e || window.event;
       …
    }运行一下下面这个代码就明白了
    <script type="text/javascript">
    alert(0 || 1); //输出1
    </script>
      

  15.   

    就是 IE和Mozilla在ECMAScript上兼容的问题
      

  16.   

    你发这两句话基本作用就是不用传参数直接处理操作中的对象.
    比如Drop()。一般的写法中调用方法是Drop(this)就是说通过参数把操作的对象传到函数当中。但是这个处理是不用传参数,通过调用Drop()函数是内部自己判断是对哪个对象进行操作。
    从而对有事件的对象进行操作。
    肯定不是"一有事件  这条语句就执行"
    是调用函数时判断操作对象的用途。
    不知道我说明白没有
    JAVASCRIPT并不是没有办法调试,只不过没有象ASP.Net那样的步进方式调试
    如果你用过ASP的话就应该知道中断。你可以手动在JAVASCRIPT当中加入一些alert();
    来中断JAVASCRIPT代码的执行,从而了解JAVASCRIPT运行的流程
    上网找个"DHTML 手册"吧,对于现在的你来说太有用了
      

  17.   

    to cgisir(☆☆☆===http://www.hansir.cn===☆☆☆) 
    "就是 IE和Mozilla在ECMAScript上兼容的问题"
    谢谢!给我上了一课to loverain9999(屁狐狸) 
    个人感觉你贴的这些代码写的很赏心悦目
    很规范,呵呵~~
    具体哪里调用了可以打开网页后看一下源文件
      

  18.   

    lz,我怀疑你是不是直接就是从。net起步的?网页程序的基础就是 html+css+javascript ,什么php asp jsp cgi 。net都不过是为了生成html罢了不会javascript可以说基本做不了什么真正意义上的网站,其实你看看。net的生成的最终html页面,里面也是有很多javascript代码的!只不过ms帮你隐藏了这个过程罢了还有javascript有很完备的文档,但是内容很多,自己看不懂,就别乱说它是乱七八糟的
      

  19.   

    ........
    比如程序是由算法和数据构成的...那对 WEB 来说HTML 就是数据, JS 就是算法...
    因此你最好学好这个....
      

  20.   

    HTML+CSS+javascript是网页编程的基础,JAVASCRIPT是没提示,很烦,我近来就老要用这个东东.因为老板是台湾人,喜欢无聊的功能.没办法....  我目前是这样子做的,把小段程序COPY到新的页面,调试,成功后再COPY回来,不要用类的思想,用VB和C的思想就行啊.调试中,用ALERT("DSFDF");来调试,就知道错的大概位置了,.  需要做的功能代码,可以在网上参考等到,目前就是这样子学和用的.没有那些懂的人打得快,但自己努力点,还是能把功能做出来的.有些实在不明白的,可以查查英文,也许能解决.  另外,HTML中的JSP和VBS可以减少数据库的负担,就是把<script></script>写在文件中,再调用.   CSS可以减少你在PHOTOSHOP的工作,也能使整体效果条理化,所以都要好好学哦.   有什么新的问题,在BAIDU.COM里的文本框内输入你的问题,我就会告诉你答案.
      

  21.   


    学习javascript我也是经历n多的磕磕绊绊,感觉最难的地方就是找不到一本完整的参考手册,因为工作的需要还是不得接触javascript,直到有一天,我在网上下载到了一本书,书名是:Oreilly.JavaScript.Pocket.Reference.2nd.Edition.iNT.eBook-LiB.chm,然后有一种豁然开朗的感觉(全英文的,俺在金山词霸的帮助下阅读的非常辛苦)。还有就是一本叫做DHTML手册的咚咚,客户端的javascript参考里面都有!
    还有安装一个firefox对于调试javascript很有帮助!
    还有 w3c DOM 的学习也是非常的必要!
      

  22.   

    谢谢楼上各位的指教,我今天算吧拖拽的的脚本给看通了。to shuiziliuvvv(大漠匪盗) 
    能把你说的那个 Oreilly.JavaScript.Pocket.Reference.2nd.Edition.iNT.eBook-LiB.chm
    给我一份么???谁有也请传我一个 谢谢了。。