2012-08-31 67 views
0

我使用下面的代碼的父:的onclick元素

$("#jplayer_playlist_item_" + i).data("index", i).click(function() { 
    var index = $(this).data("index"); 

    if (playItem != index) { 
    playListChange(index); 
    } else { 
    $("#jquery_jplayer").jPlayer("play"); 
    } 

    $(this).blur(); 

    return false; 
}); 

我想要得到它,這樣,當我點擊的"#jplayer_playlist_item_" + i"父(這是一個li)繼續使用此功能如果我點擊了這個項目本身,它會。

我試過在.click之前放置.parent,但它沒有奏效。

謝謝

+0

這是什麼$( 「#jplayer_playlist_item_」 + I)。數據( 「指數」,我) – rahul

回答

0

如果你想上的項目點擊和父母都被掛在事件處理程序,你可以這樣做:

var item = $("#jplayer_playlist_item_" + i); 
item.add(item.parent()).data("index", i).click(function() { 
    ... 
} 

這會讓你的普通項目成爲一個jQuery對象,然後將父對象添加到select,然後將這兩個數據(「index」,i)和click處理程序都應用於item和click處理程序。

如果我們可以看到這裏涉及的實際HTML,也可以使用委託事件處理和事件冒泡來處理任一元素的點擊。

+0

謝謝,這工作完美 – Olokoo

0

您是否嘗試刪除.data(「index」,i)?

下面應該工作:

$("#jplayer_playlist_item_" + i).parent().click(function() 
    { 
     var index = $(this).data("index"); 
     if (playItem != index) 
     { 
      playListChange(index); 
     } else 
     { 
      $("#jquery_jplayer").jPlayer("play"); 
     } 
     $(this).blur(); 
     return false; 
    }); 

其他先從選擇以下內容:

$("#idofparentelement, #idofparentelement > #jplayer_playlist_item_" + i).data("index", i).click(function() 
    { 
     var index = $(this).data("index"); 
     if (playItem != index) 
     { 
      playListChange(index); 
     } else 
     { 
      $("#jquery_jplayer").jPlayer("play"); 
     } 
     $(this).blur(); 
     return false; 
    }); 
0

除了您的代碼:

$("#jplayer_playlist_item_" + i).data("index", i).click(function() { 
    var index = $(this).data("index"); 
    if (playItem != index) { 
     playListChange(index); 
    } else { 
     $("#jquery_jplayer").jPlayer("play"); 
    } 
    $(this).blur(); 
    return false; 
});​ 

只要做到這一點:

var $element = $("#jplayer_playlist_item_" + i); 
$element.parent().click(function() { 
    $element.click(); 
    return false; 
}); 
0

你有沒有嘗試過這種方式。既然你知道這是<li>並假設它的父應該是<ul>

請儘量

$("#jplayer_playlist_item_" + i).data("index", i).parents('ul').click(function() { 
..... 
}