当使用PHP会话保留状态时,如何在刷新后触发onclick代码
我使用php会话变量来保留页面状态,如下面的示例所示,它是为了维护一个事实,即元素已被单击并接收一个新类。如果再次单击该类,该类将在以后被删除当使用PHP会话保留状态时,如何在刷新后触发onclick代码,php,jquery,session-state,page-refresh,Php,Jquery,Session State,Page Refresh,我使用php会话变量来保留页面状态,如下面的示例所示,它是为了维护一个事实,即元素已被单击并接收一个新类。如果再次单击该类,该类将在以后被删除 但是,我还设置了一个全局变量,以便客户端知道状态,并执行一些影响页面上其他元素的其他代码。此代码使用单击的元素的This来知道如何高亮显示其他元素 我不确定我是否理解,但是如果您正在保存php会话的状态,您可以在呈现页面之前检查该状态,如果会话说元素已被单击,那么还可以呈现一个小js脚本,该脚本将触发元素上的单击事件。这样,您就可以获得所需的所有副作用,
但是,我还设置了一个全局变量,以便客户端知道状态,并执行一些影响页面上其他元素的其他代码。此代码使用单击的元素的This来知道如何高亮显示其他元素 我不确定我是否理解,但是如果您正在保存php会话的状态,您可以在呈现页面之前检查该状态,如果会话说元素已被单击,那么还可以呈现一个小js脚本,该脚本将触发元素上的单击事件。这样,您就可以获得所需的所有副作用,就像用户单击了元素一样 您可以通过执行以下操作触发单击事件:
if ($("listRow").hasClass("someClass"))
{
// find the element that has the class "someclass"
// get the id of this element
// do something with id
};
$("#element").trigger("click");
使用最终解决方案进行编辑
这个怎么样:
$("listRow.someClass").each(function(){
// - this: Is the element with the class
// - $(this).attr("id"): Is the ID of that element
// do something with id
});
现在呢?顺便说一句,执行$listRow可能找不到任何东西,因为您告诉JQuery查找名为listRow的标记,您确定没有丢失一个。或者是在那里?很抱歉,这不起作用,因为正如我所说的,第二次单击将删除该类。由于该类是在刷新时从会话变量应用的,因此该触发器会立即将其删除。问题是,整个div列表仅在会话变量值存在时才应用该值呈现,并且主标记中不允许使用脚本。好的,重新阅读您的问题,这个:$listRow.someClass.eachfunction如何{//-this:是类为//-$this.attrid:的元素//do something ID};现在呢?顺便说一句,使用$listRow可能找不到任何东西,因为您让JQuery查找名为listRow的标记,您确定您没有缺少一个.或一个there?完美。这就是我要找的。我以前没有使用过链式选择器,但忘记了您可以这样做。谢谢。顺便说一句,我确实忘记了选择器$.listRow中的
if ($("listRow").hasClass("someClass"))
{
// find the element that has the class "someclass"
// get the id of this element
// do something with id
};
<div id="listWrapper" class="wrapper">
<div id="value1" class="listRow"></div>
<div id="value2" class="listRow"></div>
<div id="value3" class="listRow"></div>
<div id="value4" class="listRow"></div>
</div>
<div id="listWrapper" class="wrapper">
<div id="value1" class="listRow"></div>
<div id="value2" class="listRow someClass"></div>
<div id="value3" class="listRow"></div>
<div id="value4" class="listRow"></div>
</div>
<div id="listWrapper" class="wrapper">
<div id="value1" class="listRow"></div>
<div id="value2" class="listRow someClass"></div>
<div id="value3" class="listRow"></div>
<div id="value4" class="listRow"></div>
</div>
$("#element").trigger("click");
$("listRow.someClass").each(function(){
// - this: Is the element with the class
// - $(this).attr("id"): Is the ID of that element
// do something with id
});