点击事件两次

时间:2010-10-01 13:49:48

标签: jquery colorbox raphael

我不知道这是与Raphael,ColorBox还是jQuery有关。这是我的相关代码:

var image = paper.image(p.url_, tx, ty, img.width, img.height);
image[0].style.cursor = "pointer";
image.node.onclick = function() {
    $.colorbox({
        title: "Some Random Title",
        href: function() {
            $.post("test.php", { arg: p.id_ } );
        }
    });
};      

在FireBug控制台中观看点击时,帖子会被触发两次。如果它也是get,它也会被触发两次。

如果我从href函数更改为test.php的直接调用,则只发出一次get。

为什么使用jQuery时click事件会发出两次调用?

更新:在匿名函数中添加对alert的调用也会触发两次,所以我猜这与colorbox有关。

更新2 :刚尝试将其连接到实际页面,除了两个get / posts之外,FireBug还会发出此错误消息。这证实了这是ColorBox中的一个问题。此外,它也取得了很大进展,因为虽然两个调用完整的彩盒都显示出它的悸动。

c is undefined 
    (function(b,gb){var v="none",t="click"...c.settings=eb;b(c.init)})(jQuery,this)

注意:这只附加到第二个电话而不是第一个电话。

1 个答案:

答案 0 :(得分:1)

对colorbox不太熟悉,所以我在这里出去了。我猜你想要colorbox的html来使用帖子的结果。我会把帖子放在彩盒外面。您有没有理由不使用$(image.node).click()?甚至是$(image).click()?我就是这样做的

var image = paper.image(p.url_, tx, ty, img.width, img.height);
image[0].style.cursor = "pointer";
$(image.node).click(function() {
    var post_html = $.post("test.php", { arg: p.id_ } );
    $.colorbox({
        title: "Some Random Title",
        html: post_html
    });
});

这可能无法修复它,但它会告诉您问题是colorbox是否触发了两次href,或者是否正在执行两次点击。