我正在使用wordpress进行项目,我注意到一个不寻常的条件矛盾。
<li class="<?php echo (isset($_REQUEST['search']) && $_REQUEST['search']!='opportunities')? 'active':''; ?>"><a href="#tabs-1" >People</a></li>
<li class="<?php echo (isset($_REQUEST['search']) && $_REQUEST['search']=='opportunities')? 'active':''; ?>"><a href="#tabs-2">Opportunities</a></li>
所以当我提交表格时,我会得到以下内容。
$_POST['search'] =>'opportunities'
这对我来说是不合逻辑的,只是想知道是否有人遇到过此事,并且可能有所帮助。
更新:抱歉,我的不好......
这就是我回来的原因
<li class="active"><a href="#tabs-1" >People</a></li>
<li class="active"><a href="#tabs-2">Opportunities</a></li>
这是悖论,他们怎么都有活跃的类?
我也使用$_POST
代替$_REQUEST
仅用于记录。
更新2
经过一些更多的测试,以及稍后的敲击......
这种悖论只发生在$_POST['search']='opportunities'
答案 0 :(得分:2)
它基本上说,如果搜索不是“机会”,那么人们就会很活跃。 如果搜索是“机会”,那么机会就会激活。
这实际上是说,人们应该是默认选项卡,如果设置了其他任何选项卡,请将它们设为活动状态。你只有一个标签,所以令人困惑。
如果你有更多的标签,那么它就是伪代码的样子。
(!in_array($_POST['search'], array('a', 'b', 'c')) ? 'active' : ''
$_POST['search'] == 'a' ? 'active' : ''
$_POST['search'] == 'b' ? 'active' : ''
$_POST['search'] == 'c' ? 'active' : ''
这是通过使用Ternary If来分配CSS类来完成的。
$name = (condition) ? (if true) : (if false);
答案 1 :(得分:0)
这只是我的愚蠢,我的浏览器似乎太快了,
问题出现在一个jquery脚本上,它会自动使第一个标签处于活动状态,这也就是为什么它们都是活动的......而且我没有这样做解释了所有这些...
$('.tabs li').eq(0).addClass('active');