2021. 5. 12. 13:22

[jQuery] 버전 별 autocomplete _renderItem 차이

JQuery-ui 버전에 따라 autocomplete 사용법이 다름.

 

[1.12.0]

jquery 1.7.x 버전 이상을 써야 하고 최신버전 3.2.1 에서도 동작한다.

.autocomplete( "instance" )._renderItem 을 사용할 수 있고

.data("ui-autocomplete")._renderItem 을 사용할 수도 있지만 old style

 

.autocomplete( "instance" )._renderItem = function( ul, item ) {

    return $( "<li>" ).append( "<div>" + gubun + S9HL.highlight(label, searched) + "</div>" ).appendTo( ul );

)};

 

[1.11.x]

jquery 1.6.x ~ jquery 2.x 버전까지 동작

.autocomplete( "instance" )._renderItem 을 사용할 수 있고

.data("ui-autocomplete")._renderItem 을 사용할 수도 있지만 old style

 

.autocomplete( "instance" )._renderItem = function( ul, item ) {

    return $( "<li>" ).append( "<div>" + gubun + S9HL.highlight(label, searched) + "</div>" ).appendTo( ul );

혹은

    return $( "<li>" ).append(gubun + S9HL.highlight(label, searched)).appendTo( ul );

)};

 

값을 <div> 혹은 <a> 둘 다 동작하는 것으로 보이지만 <div> 가 더 좋다

<div>를 쓰지 않아도 동작한다.

[1.8.x]

jquery 1.7 버전 이상을 쓸 수 없다 (deplicate 된 함수 때문이다)

.data("ui-autocomplete")._renderItem 을 사용해야 한다.

 

.data("autocomplete")._renderItem = function(ul, item ) {

    return $( "<li>" ).data( "item.autocomplete", item ).append( '<a>' + S9HL.highlight(item.label, searchQuery) + '</a>' ).appendTo( ul );

};

값은 반드시 <a> 로 싸야 한다.

2021. 1. 26. 09:04

rowspan 처리하기

function rowspan(className){
var txt;
var rows;
$("." + className).each(function() {
txt = $(this).text();
if(txt.length === 0)
return true;

rows = $("." + className + ":contains('" + txt + "')");

if (rows.length > 1) {
rows.eq(0).attr("rowspan", rows.length);
rows.not(":eq(0)").remove();
}
});
}

rowspan("rowspan");

rowspan 을 원하는 td에 class 추가 호출하면 됨.

2020. 6. 29. 08:07

MERGE Statement

WITH TARGET
AS (
SELECT Col FROM TargetTable WHERE Condition = :Condition
)
MERGE INTO TARGET
USING (
SELECT Col FROM SourceTable WHERE Condition = :Condition
) SOURCE ON TARGET.Col = SOURCE.Col
WHEN NOT MATCHED THEN
INSERT (Col) VALUES (Col)
WHEN NOT MATCHED BY SOURCE THEN
DELETE
OUTPUT $ACTION , INSERTED.*, DELETED.*;

1. SOURCE 테이블과 TARGET 테이블을 비교해서 TARGET 테이블에 INSERT, UPDATE, DELETE 문을 수행.

[INTO] 생략가능


2. SOURCE 테이블에 조건이 필요할 경우 서브쿼리 사용.


3. TARGET 테이블에 조건이 필요할 경우 WITH 문 사용.


4. WHEN MATCHED THEN

ON 절의 조건 컬럼이 SOURCE, TARGET 양쪽다 존재하는 경우 실행

보통 UPDATE 구분 사용


5. WHEN NOT MATCHED BY TARGET THEN

ON 절의 조건 컬럼이 SOURCE에는 있는데 TARGET 에 없는 경우 실행

보통 INSERT 구문 사용(INSERT TARGET)

[BY TARGET] 생략가능


6. WHEN NOT MATCHED BY SOURCE THEN

ON 절의 조건 컬럼이 TARGET에는 있는데  SOURCE에 없는 경우 실행

보통 DELETE 구문 사용(DELETE TARGET)

2020. 6. 26. 10:00

[Bootstrap] Grid 의 vertical-align

<!--- vertical-align for row --->
<div class="container">
<div class="row align-items-center">
<div class="col-12 text-center">Content</div>
</div>
</div>

<!--- vertical-align for column --->
<div class="container">
<div class="row">
<div class="col-12 align-self-center text-center">Content</div>
</div>
</div>

<!--- vertical-align for column --->
<div class="container">
<div class="row">
<div class="col-12 my-auto text-center">Content</div>
</div>
</div>