我使用以下代码:
$("#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
)时,它继续使用此功能,就像我点击项目本身一样。< / p>
我试图在.parent
之前放置.click
,但它不起作用。
由于
答案 0 :(得分: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;
});
答案 1 :(得分:0)
如果您想要点击该项目,并且父项都要连接到事件处理程序,您可以这样做:
var item = $("#jplayer_playlist_item_" + i);
item.add(item.parent()).data("index", i).click(function() {
...
}
这会将您的正常项目放入jQuery对象,然后将父对象添加到select中,然后将数据(“index”,i)和单击处理程序同时应用于项目和单击处理程序。
如果我们可以在这里看到实际的HTML,那么也可以使用委托事件处理和事件冒泡来处理任一元素在一个位置的点击。
答案 2 :(得分: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;
});
答案 3 :(得分:0)
你有没有尝试过这种方式。由于您知道它是<li>
并且假设其父级应为<ul>
,
请尝试
$("#jplayer_playlist_item_" + i).data("index", i).parents('ul').click(function () {
.....
}