2017-03-02 63 views
0

我使用MagicSuggest,我需要获取模糊事件上选择的长度。如果我通过ENTER键添加新的选择,我的代码工作得很好,但如果我从列表中选择现有的选择,则不起作用。MagicSuggest:获取模糊时的选择长度

使用案例

  1. 如果用户通过ENTER键选择建议,长度= 1 - 正确
  2. 如果用户通过鼠标点击选择建议,长度= 0 - 不正确的,应该是1

的jsfiddle https://jsfiddle.net/a1ejqtae/7/

HTML

<form action=""> 
    <label for="keyword">Keywords</label> 
    <input type="text" id="keywords"> 
</form> 

JS

$('form input').on('blur', function(){ 

var selectionLength = $('form .ms-sel-item').length; 
$('.selection-name').text(selectionLength); 
console.log('Selection is ' + selectionLength); 

if(selectionLength > 0){ 
console.log('Selection is greater than 0'); 
} 

}); 

PS有谁知道发生了什么这个插件,GitHub的页面仍在运行,但所有的文档和示例网站关闭 - http://nicolasbize.com/magicsuggest/doc.html。谢天谢地,wayback机器。

回答

1

我在你的jsfiddle测试下面的代码,它工作得很好:

var labelName = $('label').text(); 
console.log('label = ' + labelName); 

$('#keywords').magicSuggest({ 
    hideTrigger: true, 
    placeholder: 'Start typing for keyword suggestions', 
    useZebraStyle: true, 
    data: ["banshee", "fargo", "house", "csi", "ncis"], 
    method: 'get' 
}); 

var update = function(){ 
    var selectionLength = $('form .ms-sel-item').length; 
    $('.selection-name').text(selectionLength); 
    console.log('Selection is ' + selectionLength); 
} 

$('form input').on('blur', function(){ 

update(); 

}); 
$(window).on('keyup', function(e){ 
if(e.keyCode === 13){ 

    update(); 
    $(this).blur(); 
} 

}); 
$(window).on('click', function(e){ 
    update(); 
    $(this).blur(); 
}); 

让我知道如果有任何问题。我希望它有帮助。

+0

谢谢,但我仍然得到相同的结果,点击鼠标。 https://jsfiddle.net/r87zvxy5/1/ –

+0

@ClintonGreen对不起,我更新了我的答案。它也应该与点击一起工作。 – alireza

+1

感谢您的帮助:) –