1

大家好,这里只需要一点帮助。我希望你能帮助我。这是场景:

  1. 在我的类别表中有很多行。每行都有一个隐藏的文本框,其中包含一个空值和一个唯一的 ID。当用户导航时,该类别的评论将与评论表单一起显示在下方。

  2. 如果用户在特定类别/行中悬停三 (3) 秒,则隐藏值将获取类别的 id 并将其分配给我的隐藏文本框。如果用户没有连续悬停至少 3 秒,则不会发生任何事情。

  3. 之后,如果用户将鼠标悬停在另一行上 3 秒,则应清除先前隐藏的文本值并为悬停的行分配一个新值。

我的问题是,当我导航行并保持悬停三秒钟时,我可以获得正确的隐藏值。但是当我转到另一行时,我也可以获得正确的隐藏值,但之​​前的隐藏值没有清除或重置。我怎样才能做到这一点?

这是我的代码,希望你们能理解我的观点。谢谢。

<?php
foreach($queryViewEntries as $row){

    $temp_id = $row['salescatid'];
    $cat_id = $row['salescatid'];

    echo '<tr>'
        .'<td width="5%" style="text-align: center">'
            .'<input type="text" name="indicator" value="" class="indicator" id="indicator'.$temp_id.'" style="width: 16px" />'
            .'&nbsp;'
            .'<input type="checkbox" name="category[]" value="'.$row['salescatid'].'" id="check'.$row['salescatid'].'" onclick="check(this)" id="comment'.$row['salescatid'].'" />'
         .'</td>'
        .'<td width="10%">{'.$row['salescatname'].'}</td>'
        .'<td class="hover_comment">'
            .'<span style="display: none;">{'.$row['salescatid'].'}</span>'
            .'{'.$row['salescatdesc'].'}'
        .'</td>'
        .'<td width="30%" style="text-align: center;" class="hover_comment">'
            .'<a href="#" class="buttons edit" data-value="'.$cat_id.'" name="edit_item">EDIT</a>'
            .'<a href="#" class="buttons delete" data-value="'.$cat_id.'" name="delete_item">DELETE</a>'
        .'</td>'
    .'</tr>';
}
//HERE I SET THE HIDDEN TO A SIMPLE TEXTBOX(named 'indicator') SO THAT I CAN SEE THE VALUE INSIDE  
?>

//BELOW IS MY JQUERY CODE
$(function(){

    var counter = 0,
        myInterval = null,
        temp = null,
        salesid = null;

    $(".hover_comment").hover(function(e){

        counter = 0;

        myInterval = setInterval(function(){
            ++counter;
            console.log(counter);
        }, 1000);

        salesid = $(this).find('span').text();
        $(".comment_boxes").hide();
        setTimeout(function(){$(".comment_box_"+salesid).fadeIn()}); 

        $('#txt_id').val(salesid);
        $(this).find(".tempid").val();
        $("#comment_add").show(); 

    },function(e){

        clearInterval(myInterval);

        if(counter > 3){
            $("#indicator").val('');
            alert(counter);
            //alert(salesid);
            $("#indicator"+salesid).val(salesid);
        }
    });

}); 
4

1 回答 1

1

使用JQuery 通配符^选择器清除所有#indicator元素:

$("[id^=indicator]").val('');

插入符号^表示选择 ID 以“indicator”开头的所有行。

于 2013-07-25T02:02:32.867 回答