2012-08-23 81 views
0

我有一個令人生厭的問題。我有一個表,其中包含文本輸入和選擇的行。我有自定義方法,我已經定義,在代碼中調用時,或在控制檯中,它不綁定click事件的任何選擇。只有文本輸入。但是,如果我直接在控制檯中複製並粘貼方法的代碼,它就可以正常工作。以下是我的代碼。作爲一種方法調用時,jquery事件綁定將不起作用,但直接在控制檯中調用時,jquery事件綁定將不起作用

addEditHandler : function(){ 
        $('#table2 .ui-icon-pencil').click(function(){ 
          $(this).parent().parent().parent().addClass("editing").find('input, select').removeAttr("readonly").css("background-color","white"); 
          $('#table2 .ui-icon-disk').eq($(this).parent().parent().parent().index()).show(); 
          $('#table2 .ui-icon-trash').eq($(this).parent().parent().parent().index()).show(); 
          $('#table2 .ui-icon-triangle-2-n-s').eq($(this).parent().parent().parent().index()).show(); 
          $('#table2 .ui-icon-pencil').hide(); 
          if(addComponents.getCurrentComponents(getBOM.rawXML).size()>0){ 
           addComponents.add(); 
           addComponents.populateComponents(); 
          } 

        }); 
       }, 

我大多集中在這個主線:

$(this).parent().parent().parent().addClass("editing").find('input, select').removeAttr("readonly").css("background-color","white"); 

調用此方法的格式並不適用於選擇,只是文本框。將EXACT代碼複製並粘貼到控制檯中。不知所措。

在此先感謝!

+0

它可能是'this'的範圍的問題。調用控制檯中的代碼與事件的區別在於,在控制檯'$(this)'='window'與點擊事件'$(this)'='$('#table2 .ui-icon-pencil 「)' – zeal

回答

0

仔細看一下調試器,發現它面臨着變化,但由於複製粘貼錯誤而在代碼中進一步變回原始狀態。無法想象誰會這樣做。 :)

課學習,調試器是你的朋友。

相關問題