-1

我正在使用.livejQquery 函数来更新 $post php 脚本中的某些内容,该脚本会在输入框上打开一个弹出窗口。问题是文本的值进入输入字符串,但在弹出栏时消失fadesOut()

<script type="text/javascript">
 $(document).ready(function()  {
   $(".category").live("click", function(){
     varval= $(this).text();
     $("#inputString").val(varval);
   });
});
</script>

我真的很感谢一些关于如何使价值保持的帮助。

这是我的 HTML

<div>
<form id="searchform">
    <div>
        What are you looking for? <input type="text" size="30" value="" id="inputString" onkeyup="lookup(this.value);" />
    </div>
    <div id="suggestions"></div>
</form>

这是JS

function lookup(inputString) {
if(inputString.length == 0) {
    $('#suggestions').fadeOut(); // Hide the suggestions box
} else {
    $.post("rpc.php", {queryString: ""+inputString+""}, function(data) { // Do an AJAX call
        $('#suggestions').fadeIn(); // Show the suggestions box
        $('#suggestions').html(data); // Fill the suggestions box
    });
}

}

这会调用一个 php 文件,其中包含以下内容

 <p id="searchresults">
  <?php


    while ($result = $query ->fetch_object()) {
                        if($result->liveSearchID != $catid) { // check if the category changed
                            echo '<a href="" class="category">'.$result->Keyword.'</a>';
                            $catid = $result->liveSearchID;
                        }

   ?></p>

好的,这是我尝试过的一个变体,它仍然在做同样的事情

$(document).delegate(".category", "click", function( event ) {
var varval= $(this).text();
 $("#inputString").val(varval);
});

我为你们打开了我的服务器的测试链接

请使用意大利面作为测试文本

visit http://122.160.94.46/autoSuggest1/
4

1 回答 1

0

也许是空间?

varval= $(this).text();

改成

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

为更新的 jQuery 版本重新设计:

$(document).ready(function()  {
   $(document).on('click',".category", function(){
     var val= $(this).text();
     $("#inputString").val(val);
   });
});

请尝试在.category“文档”上找到一个较低级别的容器来附加事件处理程序。

编辑:根据您发布的标记更改,您可能需要防止默认链接点击。试试这个可选部分:

$(document).ready(function () {
    $('#searchresults').on('click', ".category", function (e) {
        e.preventDefault();
        var val = $(this).text();
        $("#inputString").val(val);
        return false;
    });
});

这是一个显示这个的工作小提琴,工作良好...... http://jsfiddle.net/saYKy/

于 2013-08-01T19:32:39.310 回答