Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript IE问题:可见?_Javascript_Jquery_Css_Cross Browser - Fatal编程技术网

Javascript IE问题:可见?

Javascript IE问题:可见?,javascript,jquery,css,cross-browser,Javascript,Jquery,Css,Cross Browser,谁能告诉我如何在IE中实现这一点?它在其他浏览器中都能完美工作 我假设问题出在:visible 短暂性脑缺血发作 所有问题均采用以下格式: <div class="question"> <p>Question 1</p> <h1>is this a question?</h1> <label class="btn"><input type="radio" name="question1" value="yes">

谁能告诉我如何在IE中实现这一点?它在其他浏览器中都能完美工作

我假设问题出在
:visible

短暂性脑缺血发作

所有问题均采用以下格式:

<div class="question">
<p>Question 1</p>
<h1>is this a question?</h1>
<label class="btn"><input type="radio" name="question1" value="yes"><span class="yes">YES</span></label>
<label class="btn"><input type="radio" name="question1" value="no"><span class="no">NO</span></label>
<label class="btn"><input type="radio" name="question1" value="maybe"><span class="maybe">MAYBE</span></label>
</div>

问题1

这是一个问题吗? 对 不 大概
问题1看起来像这样:

<div class="hiddenquestion">
<p>Question 2</p>
<h1>is this a question?</h1>
<label class="btn"><input type="radio" name="question2" value="yes"><span class="yes">YES</span></lable>
<label class="btn"><input type="radio" name="question2" value="no"><span class="no">NO</span></lable>
<label class="btn"><input type="radio" name="question2" value="maybe"><span class="maybe">MAYBE</span></lable>
</div>

问题2

这是一个问题吗? 对 不 大概

其中.hiddenquestion当然是显示:无

我想你的问题是

<label class="btn"><input type="radio" name="question2" value="yes"><span class="yes">YES</span></lable>
更新 为了在所有浏览器中单击单选按钮或标签文本,您必须将javascript更改为

//change the selector of .yes to
$('label.yes').click(function () {...
并将问题“是”部分的标记改为

<label class="btn yes">
    <input type="radio" name="question1" value="yes" />
    <span>YES</span>
</label>

好的,这里有几个问题

首先,您的标签标签没有正确关闭,因为有人已经评论说
应该是

其次,从您的示例中,您的隐藏问题的class属性设置如下
,但我怀疑其中应该有一个空格,这意味着这就是您想要的
。您应该有一个css
.hidden{display:none;}
和not.hiddenquestion

第三,你需要在单选按钮和标签中添加一个点击处理程序(或者这是IE中唯一的工作方式),在这种情况下,你的js应该是这样的

var fn = function () {
    $('.question:visible')
        .fadeOut()
        .closest('.question')
        .nextAll('.question')
        .eq(0)
        .delay(400)
        .fadeIn();
};

// click handler on the yes label
$('.yes').click(fn);

// click handler on the actual yes radio
$(':radio[value="yes"]').change(fn);

你的HTML是什么样子的?IE 9,还没有测试我知道最近的是什么,我有10个问题,回答这个问题会淡出:可见的一个,然后淡出下一个。它在除IE之外的所有其他浏览器中都能正常工作,谢谢您的输入。它的作用是:
$('.yes')。单击(函数(){alert($('.question:visible').length);})
告诉你?@undefined别忘了
closest
测试元素本身以及父元素。你一定想要的不是在单击
时隐藏当前可见的问题。yes
按钮,并显示下一个隐藏的问题我刚刚尝试过这个,点击答案后我仍然一无所获?顺便说一句,你确定你点击的是“是”文本,而不是单选按钮。如果您想在单击文本“Yes”的单选按钮时将其淡出,则必须在标签上添加“Yes”类。勾选“随时更新”以澄清我从原始标记更改的所有内容已添加显示:块到问题1并已添加。问题{display:none}到我的CSP请更仔细地查看我的原始标记,该类位于单选按钮上,正如我所说,它在其他浏览器上都非常有效。非常好,谢谢,它现在在IE 8&9@Danny好的,但是没有第二点,我不确定您的代码是否可以工作,因为在您的示例中,隐藏的问题具有“hiddenquestion”(无空格)类-因此我不确定代码
.nextAll('.question')
如何工作。。。不管怎样,如果你让它工作,那么这不是一个问题…Bizzare,它工作正常,所以我猜fadeIn取消了显示:没有?虽然我在Q1上使用了display:block,但问题显示:现在没有,这也很好用。不管怎样,现在一切都好了,谢谢你的帮助。
//change the selector of .yes to
$('label.yes').click(function () {...
<label class="btn yes">
    <input type="radio" name="question1" value="yes" />
    <span>YES</span>
</label>
var fn = function () {
    $('.question:visible')
        .fadeOut()
        .closest('.question')
        .nextAll('.question')
        .eq(0)
        .delay(400)
        .fadeIn();
};

// click handler on the yes label
$('.yes').click(fn);

// click handler on the actual yes radio
$(':radio[value="yes"]').change(fn);