将onclick属性添加到父页面中的ImageButton,从JS函数调用,从内部按钮内部加载到FancyBox中

时间:2010-11-12 10:59:17

标签: javascript asp.net jquery onclick fancybox

我在ASP.NET用户控件中使用"FancyBox"(在内容页面内)。 我希望点击(客户端点击)放在页面上的按钮'加载到FancyBox中,将调用JavaScript函数,并在该函数中我想启用父页面中包含的ImageButton(打开的页面) FancyBox模态对话框)并动态添加'onclick' 它的财产。

在包含ImageButton的表单的代码文件中,我添加了一个属性,以便我可以使用JQuery轻松选择它

ibtnDeleteImage.Attributes.Add(“serverID”,“ibtnDeleteImage”);

以下是用于将onclick属性添加到ImageButton

的函数
 function addOnclick() {

   //Get ref to the delete article thumbnail image button
   var $ibtnDeleteThumbImage = $("input[serverId='ibtnDeleteImage']", window.parent.document);

   //Enable the image button
   $ibtnDeleteThumbImage.removeAttr("disabled");

   //Add  onclick property to the ImageButton assign it an  event handler and avoid post back to the server
   $ibtnDeleteThumbImage[0].onclick = function() { deleteThumbnailImage(); return false; };

    }

这是事件处理程序:

function deleteThumbnailImage() {
   var dialogMessage = "Are you sure you want \n to delete the article thumbnail";
   if (confirm(dialogMessage)) {
       var $ibtnDeleteThumbImage = $("input[serverId='ibtnDeleteImage']", window.parent.document);
       //Remove the onclick property from the ImageButton
       $ibtnDeleteThumbImage.removeAttr("click");
       //Disable the ImageButton
       $ibtnDeleteThumbImage.attr('disabled', 'disabled');

   }

}

我正在使用语法

 $ibtnDeleteThumbImage[0].onclick = function() { deleteThumbnailImage(); return false; };

而不是

$ibtnDeleteThumbImage.attr("onclick", "deleteThumbnailImage();return false;");

由于描述的问题here

我的问题: 此语法在javascript函数中运行良好,该函数由包含在常规Iframe中加载的页面的按钮调用,但不包含在加载到FancyBox中的页面中。 (onclick属性未添加到ImageButton,并且有回发到服务器)

有谁知道问题是什么,解决方案是什么?

由于

1 个答案:

答案 0 :(得分:0)

这可能是一个跨脚本问题。

在你的addOnClick函数中,你可以做这样的事情

$("input[serverId='ibtnDeleteImage']").click(function() { 
    // perform delete logic here
}).removeAttr("disabled");