使用通配符选择器调用时,不会弹出fancybox

时间:2013-02-12 13:27:57

标签: php jquery fancybox

我有一个环绕着我的元素的foreach。在这个元素中,我将href属性设置为#Sendbox,这是调用div-element的id。但是fancybox不起作用 如果我从li元素中删除id-attribute,它将按预期工作,但这对我来说没有解决方案,因为我需要id-attribute来获取其中的其他数据值。

这是我的代码:
HTML + PHP:

<ul>
<?php foreach($arrTags as $key => $value) { ?>
<li><a href="#SendBox" class="TheBox" id="setTag_<?php echo $value['userID']; ?>" data-tagid="<?php echo $value['tagID']; ?>"><?php echo $value['userName']; ?></a></li>
<?php } ?>
</ul>  
<div id="SendBox" style="display:none"><h2>Box was sent..</h2></div>

这是我的fancybox代码:

$('[id^=setTag_]').click(function() {
$('.TheBox').click(function(){  
    $(".TheBox").fancybox({
        width   : 350,
        height  : 400,
    });
});
});

我试图找到锻炼但仍然没有运气 也许有人知道解决方案吗?非常感谢。

1 个答案:

答案 0 :(得分:0)

您的逻辑没有意义,因为您可以使用元素的ID(setTag_*)或类(TheBox)调用fancybox,否则会多余并且可能会产生意外结果。此外,您不需要.click()方法,除非您想在手动模式下调用fancybox。

这些脚本中的任何一个都有效:

$(".TheBox").fancybox({
    width: 350,
    height: 400 //<-- No trial comma on the last option
});

......或

$('[id^=setTag_]').fancybox({
    width: 350,
    height: 400 //<-- No trial comma on the last option
});

... ,fancybox支持通配符选择器。请参阅 JSFIDDLE