2010-04-18 3 views
1

div (.ac_results)에서 몇 가지 요소를 선택하려면 jquery.autocomplete.jsjquery.apitags을 사용하고 있습니다. 위대한 기능이며 여러 요소를 선택할 수 있습니다. 그러나 jquery-aptags Enter 키를 누르면 플러그인이 실행됩니다. 마우스를 사용하여 화살표 대신/화살표를 사용하면 일부 사용자가 혼동을 줄 수 있습니다.jQuery.aptags 플러그인 사용자 정의 --acuresults 제출

나는 이것이 태그를 제출하는 jquery.aptags 안에있는 코드라고 생각합니다.

// 
// Hook to the keypress event. 
//    
$(this).bind('keypress', { 
    __c: __c 
}, function (e) { 

    var c = ''; 
    var i = 0; 

    var v = $(this).val(); 

    if (e.keyCode == 13) { 
     e.stopPropagation(); 
     e.preventDefault(); 
     __createSpans(this, v, e.data.__c, true); 
    } 

}); 

새 이벤트에서 직접 메서드를 호출 할 수 있는지 궁금합니다.

$('.ac_results > ul > li').livequery(function() { 
    $(this).bind('click', function() { 
     $('#address_city'). //how do I fire the "enter" event from here? 
    }); 
    }); 

의견이 있으십니까?

답변

1

당신이 아래에 제공되는 코드로 교체, 그리고 당신이 그것을 원하는대로 작동합니다 :

  • 바인드 클릭에 : 내가 만든

    $(this).bind('keypress click', { 
        __c: __c 
    }, function (e) { 
    
        var c = ''; 
        var i = 0; 
    
        var v = $(this).val(); 
    
        // if enter is pressed, or if element is clicked 
        if (e.keyCode == 13 || e.type == 'click') { 
         e.stopPropagation(); 
         e.preventDefault(); 
         __createSpans(this, v, e.data.__c, true); 
        } 
    
    }); 
    

    유일한 두 가지 변화 키 누르기 이벤트 이외에

  • 입력을 마지막으로 입력하면 또는 이벤트 유형이 '클릭'입니다.
+0

사소한 문제가 있습니다. 사용자가 입력 필드에 입력 할 때 자동 완성 기능을 사용하면 페이지 하단에 div가 삽입됩니다. --ac_results 처음에는 코드를 복사하고 .ac_results/클릭하고 입력/입력하십시오. 그러나 .ac_results는 사용자가 입력 필드에 입력 할 때마다 바뀌므로 이벤트가 손실됩니다. 올바르게 이해한다면 mouseclick 이벤트를 라이브 쿼리가있는 클래스에 연결해야합니다. 이 작업을 수행하는 방법에 대한 정보는 무엇입니까? http://docs.jquery.com/Plugins/livequery – atmorell

관련 문제