1

同じクラスの2つのセクションdivセクションがあり、同じulとliおよびaもあります。jqueryクリックイベントがあります。リンクがクリックされると、両方のjqueryクリックイベントが発生します。しかし、私は両方を望んでおらず、1つだけが解雇されます。どうすればこれを達成できますか。これが私が持っているDOM構造です。

<div class = "a">
<ul>  
<li><a href="www.google.com">google</a></li></ul></div>

<div class ="a">
<ul>
<li><a href="www.yahoo.com>yahoo</a></li></ul></div>

hrefが変更される可能性があるため、セレクターをそれに基づいて作成することはできません。

ありがとう

4

4 に答える 4

3

解雇されているのは1つだけで、何が起こっているのかを誤って解釈しているだけです。これを試して:

$("div.a a").click(function(e){
    e.preventDefault();
    alert(this.href);
});

コードを投稿してください。修正をお手伝いできる場合があります。

于 2012-05-11T21:38:29.487 に答える
0

first() メソッドを使用して最初のメソッドを起動し、last() メソッドを使用して最後のメソッドを起動できます。さらに、一意の ID を実装するか、別のクラスを適用する必要がある場合があります。

http://api.jquery.com/first-selector/

http://api.jquery.com/last-selector/

別のクラスを使用する:

<div class = "a google">  
<ul>    
<li><a href="www.google.com">google</a></li></ul></div>  

<div class ="a yahoo">  
<ul>  
<li><a href="www.yahoo.com>yahoo</a></li></ul></div> 
于 2012-05-11T21:38:51.453 に答える
0

正しい href 属性を持つものをターゲットにすることができます:

$('a[href^="wwww.google"]').on('click', function(e) {
   e.preventDefault();
   alert('This is not the Google you are looking for...');
});

href が変更された場合、それらを区別する方法はありません。ID、クラス、または構造の違いがないため、唯一のオプションは、DOM にあるインデックスを確認することです。

$('.a > ul > li > a').on('click', function(e) {
    e.preventDefault();
    var A = $(this).closest('.a').index();
    if (A==3) {
        alert("this is the one I'm lookin for");
    }
});
于 2012-05-11T21:52:56.200 に答える
0

あなたはこれを試すことができます

$(function(){ $('.a').click(function(){ var a = $(this).val(); alert(a); }); });
于 2015-11-03T11:03:47.247 に答える