2015-06-17 4 views
2

function newbox(Title, Messagetext) { $(document).ready(function() { $("#div1").text(Messagetext); $("#div1").dialog({ modal: true, title: Title, buttons: { Ok: function() { enbleButton(); $(this).dialog("close"); //self.close(); } } }); }); } Данная функция newBox используется для отображения модального всплывающего окна. эта функция совершенно нормально, если называется внутри $ (документ) .ready(), как этотjQuery UI не работает внутри javaScript-функции

$(document).ready(function() { newbox('test', 'niraj'); }); , но не работает, когда я называю это через Javascript функции, как:

function test() 
{ 
    $(document).ready(function() { 
     newbox('test', 'niraj'); 
    }); 
    return false; 

}
им с помощью IE8 , JQuery 1.10.2 и JQuery UI 1.11.4

Обновление:

Мой HTML:

<div style="display:none;"> 
<div id="dialog-message"> 
    test text 
</div> 
<div id="div1"> 
    test text 
</div> 

ответ

1

Вы должны удалить Dóm готовое событие из этого кода, то он будет работать нормально. Потому что $(document).ready() - это событие, а не функция. Это событие произойдет при загрузке страницы. Когда вы вызываете эту функцию, событие может быть уже завершено, если этот код не будет выполнен.

Try,

function newbox(Title, Messagetext) { 
    $("#div1").text(Messagetext); 
    $("#div1").dialog({ 
     modal: true, 
     title: Title, 
     buttons: { 
      Ok: function() { 
       enbleButton(); 
       $(this).dialog("close"); 
       //self.close(); 
      } 
     } 
    }); 
} 
1

$ (документ) .ready() для при загрузке страницы. Не помещайте его внутрь функции.

0

$(document).ready(callback) прикрепляет событие к документу, которое запускается, когда readyState документа изменяется на завершено (несколько других условий тоже). Вы придаете это событие внутри функции test(), что происходит, когда вы вызываете эту функцию, то EventListener получает прилагается к документу, но, как уже загружен документ обратного вызов не проходит:

Предложенного Код:

function test() 
{ 
     newbox('test', 'niraj'); 

    return false; 
} 

и

function newbox(Title, Messagetext) { 
        $("#div1").text(Messagetext); 
        $("#div1").dialog({ 
         modal: true, 
         title: Title, 
         buttons: { 
          Ok: function() { 
           enbleButton(); 
           $(this).dialog("close"); 
           //self.close(); 
          } 
         } 
        }); 
      } 

и заставить его работать в IE8 вашего HTML DIV #div1 не должен быть самозакрывающимся.

+0

Я пробовал ваш предлагаемый код. но это не сработает. –

+0

Не могли бы вы разместить свой html-код, который '# div1', он не должен быть самозакрывающимся. http://stackoverflow.com/questions/9185779/ie8-not-working-with-jquery-dialog –

+0

не закрывающиеся ..

test text
test text

0
<div style="display:none;"> 
    <div id="dialog-message"> 
     test text 
    </div> 
    <div id="div1"> 
     test text 
    </div> 
</div> 

     function test() { 
      alert('here'); 
      newbox('test', 'niraj'); 
      return false; 
     }  

     function newbox(Title, Messagetext) { 
      $("#div1").text(Messagetext); 
      $("#div1").dialog({ 
       modal: true, 
       title: Title, 
       buttons: { 
        Ok: function() { 
         enbleButton(); 
         $(this).dialog("close"); 
         //self.close(); 
        } 
       } 
      }); 
     } 

Я не могу вставить весь мой код здесь. но часть, связанная с jQuery, как указано выше. Я выполнил все инструкции, предложенные на этом посту. но он все еще не работает.

Смежные вопросы