2012-06-26 3 views
0

sys_Param.aspx라는 이름의 파일에 내 코드의 첫 번째 조각을, 바인더 제본했다 삭제 botton을 클릭 할 때 내 복제 노드를 삭제할 수 없습니다 :내가 클릭 이벤트

<div id="div_water" style="display: none" align="center"> 
<table width="100%" border="0" id="printTbl" align="center" cellpadding="5" cellspacing="1" class="table"> 
    <tr class="TR_BG_list" id="printsizescroll" style="display:none"> 
     <td align="right" class="list_link" style="width: 214px"> 
     Resize the pictrue: 
     </td> 
     <td align="left" class="list_link"> 
      Description: 
     <asp:TextBox ID="PrintSizeDec" runat="server" CssClass="form" style="width: 106px"/> 
     width|height: 
     <asp:TextBox ID="PrintSmallSize" runat="server" CssClass="form" style="width: 50px"/> 
&nbsp; 
     <label> 
      <input type="button" name="PintSizeAddClick" value="Add" class="form" id="ButtonAdd" style="width: 44px" onclick="createInputTexts(this)" /> 
     </label> 
     <span class="helpstyle" style="cursor: help;" title="Click to get some help" onclick="Help('H_WaterParam_0008',this)">Help</span> 
    </td> 
    </tr> 
    <tr class="TR_BG_list"> 
<td align="center" colspan="2" class="list_link"> 
    <label> 
    <input type="submit" name="Savewater" value=" Submit " class="form" id="Savewater" runat="server" onserverclick="Savewater_ServerClick" /> 
    </label> 
&nbsp;&nbsp; 
     <label> 
    <input type="reset" name="Clearwater" value=" Reset " class="form" id="Clearwater" runat="server" /> 
    </label> 
</td> 
</tr> 
</table> 

또 다른 부분 : 이벤트 핸들러 :

function createInputTexts() { 

    var trOrigin = $("#printsizescroll"); 
    var trClone = trOrigin.clone(true); 
    var target = $("#printTbl tr:last-child").prev(); 

    trClone.find(":button").val("delete"); 
    $('#printTbl').on('click', 'input[type="button"][value="delete"]', function() { 
     $(this).parent().parent().parent().remove(); 
    }); 
    trClone.css('display', ''); 
    // Here you can also set new ID. 
    target.after(trClone); 
} 

질문입니다 : 내가 삭제 버튼을 클릭하면, 그것은 jQuery를 dynamicly.I에 의해 생성 된 새로운 복제 행을 삭제하지 않는 것은 I 원인, 너무 혼란스러워했다 하아 클릭 이벤트를 모든 삭제 버튼에 바인딩합니다. 도움이 필요합니다. 감사합니다.

+3

[jsfiddle] (http://www.jsfiddle.net)에서 출력 된 마크 업을 사용하여 데모를 만들고 구체적으로 무엇이 작동하지 않습니까? – undefined

+0

제 질문을 훨씬 더 구체적으로하기 위해 몇 가지 단어를 추가하려고합니다. 그게 맞습니까? –

+0

버튼에 대해 onclick 이벤트가 이미 지정되어있어 삭제 버튼이됩니다. 그것으로부터 클릭 이벤트를 언 바인드하고 삭제를 처리 할 새로운 클릭 이벤트를 추가해야합니다. – fenix2222

답변

0

이 원하는 효과의 경우를 살펴 보자 http://jsfiddle.net/qV4jG/16/

복제 된 버튼은 여전히 ​​onclick 속성을 가지고, 그래서 나는이 부분에서 볼 수 있듯이 클릭 이벤트를 바인딩하기 전에 제거 :

trClone.addClass("deleteBtn"+i).find(":button").val("delete").removeAttr('onclick').click(function() { 
     $(this).parent().parent().parent().remove(); 
    }); 
+0

예! 그것이 내가 원하는 것입니다. 그러나 내 프로젝트에 코드를 붙여 넣을 때 여전히 작동하지 않습니다. 삭제 단추로 새롭게 생성 된 행을 삭제할 수 없습니다. 내 .aspx 페이지의 입력 태그 대신 TextBox를 사용하는 것과 관련이 있습니까? –

+0

자바 스크립트 오류가 없는지 확인하십시오. JS 오류가있는 경우'trClone.addClass ("deleteBtn")'와 같이 예제 코드에서'i'를 제거 할 수 있습니다. 같은 입력 버튼을 사용하는 한. 입력 버튼을 사용하고 있습니까? –

+0

나는 Firefox를 제거하고 모든 것을 테스트했습니다. Firefox에서 완벽하게 작동하지만 IE9에서는 작동하지 않을 정도로 유선입니다. 나는 왜하지 않는다 –