ColorBox onClick运行JS函数

时间:2011-10-27 20:30:19

标签: javascript jquery colorbox

我正在使用ColorBox内联功能,我创建了一个按钮,我点击该按钮关闭窗口:

$('.closebutton').live('click', function(){
        $.fn.colorbox.close();
    });

我有另一个功能,我想在单击按钮时运行,所以我使用了:

<button class="closebutton" onclick="myFunction();">Close</button>

问题是myFunction无法正常工作。

有什么想法吗?

更新:

以下是代码所在的位置:

<script type="text/javascript">
jQuery(document).ready(function() {
    $(".inline").colorbox({inline:true, width:"50%"}); //for colorbox inline
    $('#cboxClose').remove(); //remove popup window close button

    $('.closebutton').live('click', function(){
        $.fn.colorbox.close();
        myFunction();
    });

myFunction();之前或之后添加$.fn.colorbox.close();无效

myFunction代码:(这取决于页面上方的代码)

<script type="text/javascript">
function myFunction() {
    $("#ajax-form").submit(function(){
        $.post("update.php",
        $("#ajax-form").serialize(),
            function(data){
                $('#jqm').attr('src', 
                $('#jqm').attr('src'));
            }
        );
        return false;
    });
}
</script>

更新2:

我将尝试更好地解释:我在主页面上有一个表单和输入,可以查找,因此当您在输入框中添加一些文本并提交然后表单时,将提交输入的值。 现在,当我将相同的输入放在colorBox的内联区域中,以便它出现在弹出窗口内时,不会提交该值。我试过在firebag上抓住JS错误但是看不到任何东西。 希望这会有所帮助。

4 个答案:

答案 0 :(得分:1)

为什么不在myFunction()之前添加$.fn.colorbox.close();?这样你就可以确定处理的是什么订单了。

答案 1 :(得分:1)

您可以简单地执行以下操作,而不是使用内联javascript:

$('.closebutton').live('click', function(){
    $.fn.colorbox.close();
    myFunction();
});

答案 2 :(得分:0)

我认为问题是jQuery会覆盖myFunction()(onClick属性)。如果您希望在单击.closebutton时执行函数,请使用:

$('.closebutton').live('click', function(){
        $.fn.colorbox.close();
        myFunction();
});

如果仅用于该按钮,请尝试在该按钮上添加一个ID:

$('.closebutton').live('click', function(){
   $.fn.colorbox.close();
   if($(this).attr('id') == 'exampleID')){
      myFunction();
   }
});

答案 3 :(得分:0)

好的,在阅读了更新#2之后,我明白你的问题实际上并不是myFunction代码没有正确执行。

问题是你在colorbox中移动了你的输入,所以它的值不会随表单一起提交,这是正常的,因为输入现在是表单之外。

您可以简单地将整个表单移动到颜色框中,也可以使用javascript将您在表单外移动的输入值复制到隐藏的输入中。