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>

その JavaScript は、その div だけで使用しているときに実際に機能します。しかし、それをコード全体に適用すると、その JavaScript は機能しません。コードに UL タグと LI タグが複数あるためだと思います。

さて、問題は...他のULタグとLIタグがあるにもかかわらず、そのJavaScriptをそのdivでのみ機能するように適用する方法です。

4

3 に答える 3

4

最初にdivをターゲットにしてからそのコンテンツをターゲットにする代わりに、これを使用してください

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

JavaScript (Jquery だけでなく) はすべてスコープに関するものです。

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

clickのすべてにバインドする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 に答える