HTML/Javascript/jQuery页面有一个功能,可以在一种状态下工作,但不能在另一种状态下工作

HTML/Javascript/jQuery页面有一个功能,可以在一种状态下工作,但不能在另一种状态下工作,javascript,jquery,html,Javascript,Jquery,Html,我有一个奇怪的事情发生,页面的一部分在同一时间工作,而不是在页面的不同状态下工作 请看这一页: 如果你点击“有助于停止或抑制压力进食的移动应用”,它会将其扩展成一系列形式。这就是本页的工作原理 现在,如果您试图通过单击“建议解决方案”来建议一个新的解决方案,您将获得一个制作一个解决方案的表单。填写表单后,系统会向您显示之前提出的建议解决方案以及您的解决方案,但问题是,如果您单击其中任何一个,页面将转到相同的url,并在其末尾添加#,因此似乎有问题 要重新填写表单,您需要测试登录凭据: logi

我有一个奇怪的事情发生,页面的一部分在同一时间工作,而不是在页面的不同状态下工作

请看这一页:

如果你点击“有助于停止或抑制压力进食的移动应用”,它会将其扩展成一系列形式。这就是本页的工作原理

现在,如果您试图通过单击“建议解决方案”来建议一个新的解决方案,您将获得一个制作一个解决方案的表单。填写表单后,系统会向您显示之前提出的建议解决方案以及您的解决方案,但问题是,如果您单击其中任何一个,页面将转到相同的url,并在其末尾添加#,因此似乎有问题

要重新填写表单,您需要测试登录凭据:

login: testing@problemio.com
password testing
以下是服务器端打印该div内容的函数:

function printSuggestedSolutions ( $suggested_solutions_result )
{
    if (mysql_num_rows($suggested_solutions_result) > 0 )
    {
            while($row = mysql_fetch_assoc($suggested_solutions_result))
            {
                $suggested_solution_id = $row['suggested_solution_id'];
                $problem_id = $row['problem_id'];
                $solution = $row['solution']; 
                $solution_name = $row['solution_name']; 


                $day = $row['DAYOFMONTH(solution_date)'];
                $day_name = $row['DAYNAME(solution_date)'];
                $year = $row['YEAR(solution_date)'];
                $month = $row['MONTH(solution_date)'];

                $first_name = $row['first_name'];                
                $last_name = $row['last_name'];
                $email = $row['email'];                

                $formatted_date = $day_name.', '.$month.'-'.$day.'-'.$year;

                $suggester_id = $row['suggester_id'];               

                $solution = nl2br($solution);   

                // Have to make the better name and picture thing.
                $photo_path = $row['photo_path'];                
                $small_thumb = $row['small_thumb'];
                $mid_thumb = $row['mid_thumb'];       

                if ( isset ( $mid_thumb ) )
                {
                    $img_src = $mid_thumb;
                }
                else
                {
                    $img_src = "http://www.problemio.com/img/happy.jpg";
                }                                      

                echo '<div>';                  
                echo '<div style="padding-top: 15px; float:left; width: 150px;">';
                                echo '<img src='.$img_src.' width="100" >';
                    echo '<p>Comment by: <br />'.$first_name.' '.$last_name.'</p>';                                
                echo '</div>';

                echo '<div style="float:left; width: 540px; ">';                

                    echo '<p style="font-family: arial;">Solution name: <a class="expand_suggested_solution" style="color: #295B7B;" href="#" data-suggestion_id="'.$suggested_solution_id.'"  data-problem_id="'.$problem_id.' ">'.$solution_name.'</a></p>';
                    echo '<p style="font-family: arial;">'.$solution.'</p>';
                    echo '<p style="color: #B77F37;">on '.$formatted_date.'</p>';
                echo '</div>';

                echo '</div>';
                echo '<div style="clear:both;"></div>';
            }
    }
    else
    {
            echo '<p>There are no suggestions for future solutions yet.  Suggest a solution.</p>';
    }
}
函数printSuggestedSolutions($suggested_solutions_result)
{
if(mysql\u num\u行($suggered\u solutions\u result)>0)
{
而($row=mysql\u fetch\u assoc($suggered\u solutions\u result))
{
$suggestived_solution_id=$row['suggestived_solution_id'];
$problem_id=$row['problem_id'];
$solution=$row['solution'];
$solution_name=$row['solution_name'];
$day=$row['DAYOFMONTH(解决方案日期)';
$day_name=$row['DAYNAME(解决方案_日期)';
$year=$row['year(solution_date)';
$month=$row[“月(解决方案日期)”;
$first_name=$row['first_name'];
$last_name=$row['last_name'];
$email=$row['email'];
$date=$day\u name.','.$month.'-'.$day.-'.$year;
$suggester_id=$row['suggester_id'];
$solution=nl2br($solution);
//必须要有更好的名字和图片。
$photo_path=$row['photo_path'];
$small_thumb=$row['small_thumb'];
$mid_thumb=$row['mid_thumb'];
如果(isset($mid_thumb))
{
$img_src=$mid_thumb;
}
其他的
{
$img_src=”http://www.problemio.com/img/happy.jpg";
}                                      
回声';
回声';
回声';
回显“注释人:
”。$first\u name.'。$last\u name.

”; 回声'; 回声'; echo“

解决方案名称:

”; echo“

”.$solution.“

”; 在“$formatted\u date”上回显“

; } }

您喜欢在服务器端创建的HTML的内联样式吗?;)

在这两种情况下,HTML都如下所示:

<p style="font-family: arial;">
Solution name:
<a class="expand_suggested_solution" data-problem_id="219" data-suggestion_id="75" href="#" style="color: #295B7B;">test1</a>
</p>

解决方案名称:


如果不进行深入调试,而是在URL末尾附加一个“#”,而不是运行一些JS行为,则可能是以下两种情况之一:

  • 单击处理程序不再正确绑定

  • 您忘记了
    返回false


  • 这两种方法听起来都可能吗?

    在单击处理程序中,JS正在设置display:none以显示具有单击处理程序的元素。这可能会将元素从dom中删除,并使其失去单击侦听器

    你能把这些线改一下吗

    document.getElementById("add_existing_suggestion").style.display = 'none';
    document.getElementById("add_existing_suggestion").style.display = 'inline';
    


    我试图非常仔细地检查显示的html之间是否存在不一致,但它似乎是由相同的代码显示的,这让我非常困惑,为什么会发生这种情况,在某一点上它工作,而在另一点上,某些东西关闭了。在填写表单后,锚的href确实设置为#。我不知道是通过客户端脚本还是服务器端设置的。一个代码示例将是helpful@DerekOk即将发布打印该内容的代码Ok,看起来链接是在服务器端动态创建的。在这种情况下,您可能需要使用jQuery live()绑定事件,以将事件处理程序持久化到所有元素(现在和将来)@Derek Hunziker哦,是的,live Function!!!只是为了让我弄清楚,它到底应该在哪里,怎么做?谢谢让我看看单击处理程序是否不再正确绑定。我肯定返回false。是的,你是对的,没有调用单击处理程序。不知道为什么,虽然很有趣,但我没想过。让我试试。只是试了一下,但不太管用。我对它应该是什么样子感到困惑,因为我当前的click处理程序中有另一个ajax调用和一堆代码。“你能帮我理解整个事情会是什么样子吗?”GeekedOut我刚刚更新了我的答案。我以为你在用JS创建元素,但是你在创建所有的元素,并隐藏那些没有被使用的元素。问题是javascript在运行之前不会等待html向dom注册。由于click处理程序的代码在html之前,因此无法register@sissnb啊,我想我明白你的意思了…再试一次thing@sissnb顺便说一句,从我的js中可以看到,我的js和jquery不是都在document.ready中了吗?
    document.getElementById("add_existing_suggestion").style.visibility = 'hidden';
    document.getElementById("add_existing_suggestion").style.visibility = 'visible';