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;
});

我正在尝试获取它,以便当我单击"#jplayer_playlist_item_" + i"(它是 a li)的父级时,它会继续执行此功能,就像我单击该项目本身一样。

我之前尝试过纠正.parent.click但没有奏效。

谢谢

4

4 回答 4

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;
    });
于 2012-08-31T06:24:10.423 回答
0

如果您希望单击项目和父项都连接到事件处理程序,您可以这样做:

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

这会将您的普通项目放入 jQuery 对象中,然后将父对象添加到选择中,然后将 data("index", i) 和单击处理程序应用于项目和单击处理程序。

如果我们可以看到此处涉及的实际 HTML,则可能还可以使用委托事件处理和事件冒泡在一个位置处理任一元素的单击。

于 2012-08-31T06:32:22.680 回答
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;
});
于 2012-08-31T06:45:11.670 回答
0

你有没有试过这样。既然你知道它是<li>并且假设它的父母应该是<ul>

请试试

$("#jplayer_playlist_item_" + i).data("index", i).parents('ul').click(function () {
.....
}
于 2012-08-31T09:05:28.763 回答