2016-11-16 4 views
0

함수에서 전달 된 인수를 기반으로 인쇄 단추를 표시하는 방법이 있는지 궁금합니다.JQuery의 인쇄 버튼 표시/숨기기?

alertInfo: function (message, title, height, width, print) { 
    $("<div></div>").dialog({ 
     buttons: { 
      "Ok": function() { 
       $(this).dialog("close"); 
      }, 
      //show/hide button if argument 'print' equals to 'Yes' 
      "Print": function() { 
       $(this).dialog().printArea(); 
      }, 
     }, 
     close: function (event, ui) { $(this).remove(); }, 
      resizable: false, 
      title: title, 
      modal: true, 
      width: height, 
      height: width, 
      overflow:'auto', 
      position: { 
       my: "center", 
       at: "center", 
       of: window 
      } 
    }).html(message); 
} 

이 내가 alerInfo() 함수에서 인수를 전달하고있어 코드입니다 : 여기에 대화 상자를 만듭니다 내 코드입니다

$.alertInfo(infoTable,'User Info',800,600,'Yes'); 

나는 여전히이 작업을하지 않았다을 내가 시도하는 경우 print 버튼 에러가 발생했을 때 if 문을 넣는다. 아무도 도와 줄 수 없다면 알려주세요. 그래서 당신은 동적으로를 만들 수 있습니다 무엇을 할 수 있는지

{ 
    "Ok": function() { 
     $(this).dialog("close"); 
    }, 
    "Print": function() { 
     $(this).dialog().printArea(); 
    } 
} 

:

+0

버튼입니다. – Geeky

+0

@Geeky 확인 및 인쇄에 무엇

// create the object var myButtons = { "Ok": function() { $(this).dialog("close"); } }; // conditionally add a "print" button if (someCondition) { myButtons.Print = function() { $(this).dialog().printArea(); } } // use the object $("<div></div>").dialog({ buttons: myButtons, close: function (event, ui) { $(this).remove(); }, // etc. }); 

답변

1
alertInfo: function(message, title, height, width, print) { 
    var buttons = { 
     "Ok": function() { 
      $(this).dialog("close"); 
     } 
    }; 
    if (print) buttons.print = function() { 
     $(this).dialog().printArea(); 
    }; 
    $("<div></div>").dialog({ 
     buttons: buttons, 
     close: function(event, ui) { 
      $(this).remove(); 
     }, 
     resizable: false, 
     title: title, 
     modal: true, 
     width: height, 
     height: width, 
     overflow: 'auto', 
     position: { 
      my: "center", 
      at: "center", 
      of: window 
     } 
    }).html(message); 
} 

이 인쇄 매개 변수 당신은 효과적으로 buttons 속성에 객체를 전달하는 부울

$.alertInfo(infoTable,'User Info',800,600, true); // to show print button 

$.alertInfo(infoTable,'User Info',800,600, false); // to not show print button 
1

가정합니다 개체를 조건에 따라 선택한 다음 동적으로 만든 개체를 속성으로 설정합니다. 그것은 다음과 같이 보일 수 있습니다

"OK"와 "인쇄는"코드