2013-06-04 1 views
0

다음 조건을 사용하여 조건이 맞지 않으면 색상 상자 플러그인이 실행되지 않습니다.조건이 false 인 경우에도 colorbox가 실행됩니다. jquery

function settleCashInterface(){ 
    var element; 
    $('#bill-list').find(".bill-item-list").each(function(){ 
      if($(this).css("display") == "block"){ 
      element = $(this); 
      return false; 
      }else{ 
       element = 0; 
      } 
     }); 
    if(element != 0){ 
     $(".settle-cash").colorbox({inline:true, width:"72%"}); 
     var data = "billId=" + element.parent().attr("id") + "&settlementType=No"; 
     ajaxCall("/setlement","POST",data,function(response){ 
      $('#settle-cash').find('.table-number').val(response.settleInfo.tableNo); 
      $('#settle-cash').find('.room').val(element.parent().find('.room-number').html()); 
      $('#settle-cash').find('.num-of-guests').val("3"); //hard coded values 
      $('#settle-cash').find('.total').val(response.settleInfo.totalAmout); 
      $('#settle-cash').find('.total-due').val(response.settleInfo.totalAmout); 
      $('#settle-cash').find('.total-due').prop("disabled", true); 
      $('#settle-cash').find('.final-value').html(response.settleInfo.totalAmout); 
      $('#settle-cash').attr("billId",element.parent().attr("id")); 
      $('#settle-cash').attr("billNo",element.parent().find('.bill-number').html()); 
     }); 
     resetAddBill(); 
    }else{ 
     alert("Select a bill"); 
    } 
} 

이 기능은 클릭 이벤트와 다음 코드에서 트리거됩니다!

$('.settle-cash').click(function(){ 
     settleCashInterface(); 
    }); 

요소가 표시되면 색상 상자가 실행되고 그렇지 않으면 색상 상자가 실행되지 않아야합니다. 각 요소를 클릭하면 표시 블록 CSS 스타일을 가진 요소가없는 경우 메시지가 표시됩니다. 나는 방화 광구를 사용하여 디버깅을했다. 처음 클릭하면 조건이 완벽하게 실행되어 colorbox가 표시되지 않습니다. 하지만 요소 쇼를 만들고 숨기면 조건이 해고되고 경고가 표시됩니다. 경고 상자를 닫으면 colorbox가 실행됩니다. 내가 어떻게 그만 둘 수있어!

답변

0

코드가 정상적으로 보입니다. 요소가 블록이 아닌 다른 것으로 설정되어 있는지 확인하십시오. 따라서 display: none 등은 block이 기본값이기 때문에.