Добавление свойства onclick в ImageButton на родительской странице из функции JS, вызываемой из кнопки внутри страницы, загруженной в FancyBox - PullRequest
0 голосов
/ 12 ноября 2010

Я использую "FancyBox" в ASP.NET User Control (внутри страницы содержимого).Я хочу, чтобы щелчок (щелчок на стороне клиента) на кнопке, размещенной на странице, загруженной в 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;");

Из-за описанной проблемы здесь

Моя проблема : Этот синтаксис хорошо работает в функции JavaScript, вызываемой кнопкой, содержащей страницу, загруженную в обычный Iframe, но не содержащуюся на странице, загруженной в FancyBox.(Свойство onclick не добавляется в ImageButton и происходит обратная передача на сервер)

Кто-нибудь знает, в чем проблема и как ее решить?

Спасибо

1 Ответ

0 голосов
/ 05 июля 2011

Это может быть кросс-сценарием.

В вашей функции addOnClick вы можете сделать что-то вроде этого

$("input[serverId='ibtnDeleteImage']").click(function() { 
    // perform delete logic here
}).removeAttr("disabled");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...