我正在使用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错误但是看不到任何东西。 希望这会有所帮助。
答案 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将您在表单外移动的输入值复制到隐藏的输入中。