2015-02-04 3 views
2

jqGrid에서 파일 몇 개를 다운로드하는 기능을 제공하는 응용 프로그램에서 작업하고 있습니다.jQuery의 클릭 버튼에 클릭 이벤트를 바인딩하는 방법

jqGrid에는 여러 행과 각 행에 대한 다운로드 버튼을 표시하는 하나의 열이 있습니다. 사용자가 클릭해야 다운로드가 시작됩니다. 이 다운로드 버튼 내가

<input type="button" id="download" height="30px" width="100px" value="Download"> 

내있는 jqGrid 코드

은 내가 아래 버튼을 복제하는 것을 시도하고, 다음과 같이 JSP에서 HTML 입력 태그를 사용했다.

{ 
    name:'click to download', 
    index:'click to download', 
    width:50, 
    formatter: function(cellvalue, options, rowObject){ 
    var button = $("#download").clone(true); 
    button.addClass(".button"); 
    $("body").on("click",".button",function(){ 
     alert("hello"); 
    }); 
    return button[0].outerHTML; 
    }, 
    sortable: false 
} 

나는 그것의 클릭 이벤트에이 복제 된 버튼을 별도로 함수를 작성 및 ROWID 및 cellvalue으로 그 함수에 매개 변수를 전달하고 싶다.

누구나 나를 도와주세요. 나는이 이벤트 버튼에 기능을 만들려고했지만 전화를받지 못했습니다. 그 후 나는 복제 대신 수동으로 버튼을 만들려고했지만 클릭 기능은 여전히 ​​호출되지 않습니다. 도움을 주시면 대단히 감사하겠습니다.

+0

ID를 *** 필수 ***의 문서에 고유 컨텍스트, 대신 클래스 사용 –

+0

'button [0] .outerHTML'을 반환하면 관련된 모든 데이터와 이벤트가 손실됩니다. 문제를 재현하는 jsFiddle로 온라인 샘플을 제공하는 편이 낫습니다. –

+0

해결책을 시도했지만 작동하지 않았습니다. –

답변

1

이 변경 시도

button.addClass("button");

+0

이 솔루션은 효과가 있었지만 지금은 버튼을 클릭 할 때 행 수가 동등하다는 경고가 표시됩니다.이를 피하는 방법을 알려주십시오. –

+0

각 행에 대해 하나의 클릭 이벤트를 추가하는 경우 여러 개의 경고가 표시됩니다. 대신 페이지가로드 될 때 (jqgrid 코드 외부에서) 한 번만 클릭 이벤트를 추가하면 단일 경고가 표시됩니다. –

+0

하지만 그 클릭 이벤트에 어떻게 매개 변수를 전달합니다. 그 함수에 매개 변수를 전달해야합니다. 이 샘플 코드를 제공해 주시겠습니까? 버튼을 클릭하면 해당 기능에 완전한 행 데이터를 전달해야합니다. –

2

"에"는 DOM의 클릭 이벤트를보고 계속하기 때문에 당신은 간단한 클릭 방금 복제 요소를 인식 할 수없는 기능 "의"jQuery를 사용해야합니다

syntaxe :

$("body").on("click", ".your_element", function() { 
    // your code here 
}); 

참고 :은 ID 대신 클래스를 사용합니다. 합니다 (추가하는 설정 기간을 제거)이에

button.addClass(".button");

: 코드에서

+0

아래 코드를 변경했지만 여전히 작동하지 않습니다. var button = $ ("# download"). 복제 (true); \t \t \t \t \t button.addClass (". button"); \t \t \t \t \t $ ("몸")에. ("클릭", 기능() "버튼을 클릭합니다."{ \t \t \t \t \t \t 경고 ("안녕하세요"); \t \t \t \t \t}) ; 돌아 가기 단추 [0] .outerHTML; –

+0

위를 참조하십시오. 코드를 변경했습니다. Jquery 코드를 작성하는 데 익숙하지 않아서 제발 도와주세요. –

+0

내가 누락 된 부분을 알려 주시기 바랍니다. –

관련 문제