2010-04-18 35 views
1

我使用jquery.autocomplete.jsjquery.apitags從div(.ac_results)中選擇幾個元素這很好,我可以選擇多個元素等。但jquery-aptags插入按鈕時只會觸發插件。如果用戶使用鼠標點擊而不是鍵盤上的箭頭/輸入,這可能會混淆一些用戶。自定義jQuery.aptags插件 - 鼠標點擊提交.ac_results列表

我認爲這是提交標籤的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,從而丟失事件。如果我正確理解這一點,則需要使用livequery將mouseclick事件附加到該類。有關如何做到這一點的任何提示? http://docs.jquery.com/Plugins/livequery – atmorell 2010-04-18 14:47:23