0

我有这个 div 标签:

<div id="target-share">
<a href="#" title="" id="to-chosen" class="default"><span class="to-admin">Admin</span></a>
<ul id="select-shareto">
<li data-val="0-1">
<a href="#" title="" class="selected"><span class="to-Finance">Finance</span></a>
</li>
<li data-val="1-1">
<a href="#" title=""><span class="to-admin-private">Admin Private</span></a>
</li>
<li data-val="1-0">
<a href="#" title=""><span class="to-ceo">CEO</span></a>
</li>
<li data-val="0-0">
<a href="#" title=""><span class="to-ceo-private">CEO Private</span></a>
</li>                                    
</ul>
<input id="shareto" type="text" value="0-1" name="shareto">
</div><!-- #target-share -->

和这个 JavaScript :

<script type="text/javascript">
$(document).ready(function($) {
        $('ul li').click(function() {
            $('input#shareto').val($(this).data('val'));
        });
    });
</script>

当我单独将它与那个 div 一起使用时,JavaScript 实际上可以工作。但是当我把它放在我的完整代码上时,那个 JavaScript 不起作用。我认为这是因为我的代码中有多个 UL 和 LI 标签。

现在,问题是......如何应用该 Javascript 以便它仅适用于该 div,即使还有其他 UL 和 LI 标记。

4

3 回答 3

4

只需使用它而不是先定位 div 然后再定位它的内容

$('#target-share ul li')
于 2012-07-27T11:13:06.137 回答
0

JavaScript(不仅仅是 Jquery)都是关于范围的:

$('ul li').click(function() {

导致它click绑定到 a 中的每li一个,ul因此您想要做的是将范围click缩小到页面的特定区域或页面中的一组元素。

要将其范围缩小到特定元素,最好的办法是使用这样的 id:

$('#target-share ul li')

但是要将其范围缩小到许多元素,最好使用如下类:

$('.target-share ul li')

编辑:

在这里也on()可能是一个很好的替代品,click但这取决于 HTML 的来源和使用方式,但我想我会让你知道这个功能,以防你还不知道它。

于 2012-07-27T11:16:04.317 回答
-1

选择那些ul li有你的data-val属性:

$(function($) {
    $('ul li[data-val]').click(function() {
        $('input#shareto').val($(this).data('val'));
    });
});
于 2012-07-27T11:13:42.157 回答