我有一些显示和隐藏一些帮助文本的JavaScript。除非存在select2字段,否则每次都能正常工作。
HTML:
$(document).on 'page:load', ->
$(document).on 'click', (e) ->
$('.help-wrap span').each (i,el) ->
trig = el
if trig != e.target && !$(trig).has(e.target).length
$(trig).removeClass('active')
$(trig).parents('.help-wrap').find('.help-text').hide()
else
$(trig).parents('.help-wrap').find('.help-text').toggle()
$(trig).toggleClass('active')
CoffeeScript的:
{{1}}
当我点击跨度时,它会切换是否显示帮助文本 - 除非存在select2字段,否则此工作正常。在哪种情况下,没有任何反应?
单击页面上除栏位以外的任何位置都会按预期隐藏帮助文本。
提前致谢
答案 0 :(得分:0)
我写了js代码如下:
使用传统语法:
$( document ).ready(function() {
$(document).click(function(e) {
// Check for left button
if (e.button == 0) {
$('.help-wrap span').each(function (i, el) {
var trig;
trig = el;
if (trig !== e.target && !$(trig).has(e.target).length) {
$(trig).removeClass('active');
return $(trig).parents('.help-wrap').find('.help-text').hide();
} else {
$(trig).parents('.help-wrap').find('.help-text').toggle();
return $(trig).toggleClass('active');
}
});
}
});
});
使用coffeescript:
$(document).ready ->
$(document).click (e) ->
# Check for left button
if e.button == 0
$('.help-wrap span').each (i, el) ->
trig = undefined
trig = el
if trig != e.target and !$(trig).has(e.target).length
$(trig).removeClass 'active'
$(trig).parents('.help-wrap').find('.help-text').hide()
else
$(trig).parents('.help-wrap').find('.help-text').toggle()
$(trig).toggleClass 'active'
return
return
这似乎对我有用,使用这个html:
<body>
<div class="help-wrap">
<div class="form-group">
<label class="control-label required" for="s2id_autogen1">Occupation</label>
<div class="select2-container form-control select2 select2-allowclear" id="s2id_milestone_client1_occupation"><a href="javascript:void(0)" onclick="return false;" class="select2-choice" tabindex="-1"> <span class="select2-chosen">Abstractor</span><abbr class="select2-search-choice-close"></abbr> <span class="select2-arrow"><b></b></span></a><input class="select2-focusser select2-offscreen" type="text" id="s2id_autogen1"><div class="select2-drop select2-display-none select2-with-searchbox"> <div class="select2-search"> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" class="select2-input"> </div> <ul class="select2-results"> </ul></div></div>
<select class="form-control select2 select2-offscreen" id="milestone_client1_occupation" name="milestone[client1_occupation]" tabindex="-1"><option value=""> </option>
<option value="001">Abattoir Worker</option>
<option value="C89">Zoology Consultant</option>
</select>
</div>
<span class="fa fa-question-circle"></span>
<div class="help-text">
Please select your occupation, if you cannot find an exact match for your occupation then please choose the closest match.
</div>
</div>
</body>
答案 1 :(得分:0)
结果表明选择器不够具体。
将$('.help-wrap span')
更改为更具体的内容。
感谢您的帮助