jQuery: 如何在鼠标悬停时显示复选框值(没有标题属性)
jQuery: How to show a checkbox value on mouseover (without title attribute)
我是 jQuery 的新手,需要以下方面的帮助。
我有一个 HTML 页面,其中包含大量动态复选框,我想 在鼠标悬停时显示复选框的值,而无需添加标题 属性在他们每个人的代码中。
此外,复选框的值可以与她旁边显示的文本(标签)不同。
复选框始终位于 div 和 class '.divCheck'
中,以上内容适用于这些 div 中的所有复选框(所有设置方式相同)。
到目前为止,我有以下内容可以按预期工作,但似乎非常慢(至少在我的测试环境中)。
是否有更快/更好的方法来实现此目的,或者可以将其写成不同的方式(jQuery 或 HTML)以使其 运行 更快?
我的HTML(简体):
<div class="divCheck">
<input type="checkbox" name="language" class="checkSingle" id="language1" value="de - German" />
<label for="language1">de</label>
<input type="checkbox" name="language" class="checkSingle" id="language2" value="en - English" />
<label for="language2">en</label>
<input type="checkbox" name="language" class="checkSingle" id="language3" value="es - Spanish" />
<label for="language3">en</label>
<!-- ... -->
</div>
我的jQuery:
$('div.divCheck label').on('mouseover', function(){
var checkID = $(this).attr('for');
var checkVal = $('#'+checkID).val();
$(this).prop('title', checkVal);
});
非常感谢您的帮助,
麦克
无需使用事件处理程序,您可以像
一样以编程方式设置标题
$('div.divCheck label').attr('title', function(){
return $(this).prev('input').val()
});
$('div.divCheck label').attr('title', function() {
return $(this).prev('input').val()
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="divCheck">
<input type="checkbox" name="language" class="checkSingle" id="language1" value="de - German" />
<label for="language1">de</label>
<input type="checkbox" name="language" class="checkSingle" id="language2" value="en - English" />
<label for="language2">en</label>
<input type="checkbox" name="language" class="checkSingle" id="language3" value="es - Spanish" />
<label for="language3">en</label>
</div>
qtip 等工具提示库可以帮助您
您可以将复选框的 title
属性设置为值。这样,您就不需要任何 library/plugin.
$(':checkbox').prop('title', function() {
return $(this).val();
});
我是 jQuery 的新手,需要以下方面的帮助。
我有一个 HTML 页面,其中包含大量动态复选框,我想 在鼠标悬停时显示复选框的值,而无需添加标题 属性在他们每个人的代码中。
此外,复选框的值可以与她旁边显示的文本(标签)不同。
复选框始终位于 div 和 class '.divCheck'
中,以上内容适用于这些 div 中的所有复选框(所有设置方式相同)。
到目前为止,我有以下内容可以按预期工作,但似乎非常慢(至少在我的测试环境中)。
是否有更快/更好的方法来实现此目的,或者可以将其写成不同的方式(jQuery 或 HTML)以使其 运行 更快?
我的HTML(简体):
<div class="divCheck">
<input type="checkbox" name="language" class="checkSingle" id="language1" value="de - German" />
<label for="language1">de</label>
<input type="checkbox" name="language" class="checkSingle" id="language2" value="en - English" />
<label for="language2">en</label>
<input type="checkbox" name="language" class="checkSingle" id="language3" value="es - Spanish" />
<label for="language3">en</label>
<!-- ... -->
</div>
我的jQuery:
$('div.divCheck label').on('mouseover', function(){
var checkID = $(this).attr('for');
var checkVal = $('#'+checkID).val();
$(this).prop('title', checkVal);
});
非常感谢您的帮助, 麦克
无需使用事件处理程序,您可以像
一样以编程方式设置标题$('div.divCheck label').attr('title', function(){
return $(this).prev('input').val()
});
$('div.divCheck label').attr('title', function() {
return $(this).prev('input').val()
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="divCheck">
<input type="checkbox" name="language" class="checkSingle" id="language1" value="de - German" />
<label for="language1">de</label>
<input type="checkbox" name="language" class="checkSingle" id="language2" value="en - English" />
<label for="language2">en</label>
<input type="checkbox" name="language" class="checkSingle" id="language3" value="es - Spanish" />
<label for="language3">en</label>
</div>
qtip 等工具提示库可以帮助您
您可以将复选框的 title
属性设置为值。这样,您就不需要任何 library/plugin.
$(':checkbox').prop('title', function() {
return $(this).val();
});