2013-09-08 2 views
-1

Я следую примеру модального диалога на веб-сайте jQuery UI, но не успеваю отобразить диалог. В примере создается и открывается диалоговое окно с помощью кнопки-cllick, но я пытаюсь запустить его из щелчка на элементе TD. Это возможно?можно открыть диалоговое окно JQuery UI, нажав на элемент TD?

ответ

0

Предположим, что ваш td элемент имеет clickable_td идентификатор, а также ваш диалог блок имеет dialog идентификатор, поэтому вы можете прикрепить кнопку обработчик события тд emelent с объектом функции on() и отображения диалогового блока с dialog() объекта функции в то время как щелчки захватили, как это :

$('#clickable_td').on('click',function(){$('#dialog').dialog();}); 

Примечание: Jquery г-индекс по умолчанию 100, если элементы макетов имеют более высокое значение, попробуйте вместо этого:

$('#clickable_td').on('click',function(){$('#dialog').dialog();$('div.ui-front').removeClass('ui-front').css({zIndex: "10000"})}); 
+0

@Saber Haj Rabiee: это, по сути, то, что я делаю. Теперь я полагаю, что моя проблема может быть связана с z-индексом. http://stackoverflow.com/questions/14954104/why-jquery-ui-1-10-remove-jquery-dialog-zindex-option – Tim

+0

@Tim Можете ли вы поделиться своим кодом? в jQuery UI 1.10.3 по умолчанию индекс zi-front по умолчанию равен 100, поэтому, если другие слои имеют более высокое значение z-index jQuery, вам нужно изменить jQuery z-index. Я бы обновил свой пост. – 01e

+1

«попробуйте это» не является объяснением того, почему ваше решение будет работать @Saber; теперь вы добавили немного больше объяснений, поэтому я удаляю свой предыдущий комментарий, но я бы рекомендовал вам подробнее рассказать о том, что происходит. Идея сайта заключается в том, чтобы быть ресурсом для будущего на данный момент, который большинство людей сможет сделать с вашим ответом, это скопировать и вставить код. См. Http://meta.stackexchange.com/questions/196187/is-try-this-bad-practice – Ben

0

Этот код в основном создает пользовательский интерфейс блока. Вместо использования интерфейса пользовательского интерфейса jquery block вы можете использовать плагин jquery blockUI. Вы можете сослаться на ссылку, чтобы понять код. http://www.malsup.com/jquery/block/#demos В приведенном ниже примере #yourtd_id - это идентификатор вашего td и #your_div - это div, который вы хотите сделать модальным. Когда нажимается td .blockUI - это класс, который отображает ваш_div на экране. Теперь это похоже на модальный диалог. Чтобы выйти из модального диалога, вставьте кнопку на #your_div и укажите id как #cancel_btn. При щелчке на #cancel_btn .unblockUI() разблокирует пользовательский интерфейс, который блокирует модальный диалог.

$(document).ready(function() { 
    $('#yourtd_id').click(function() { 
     $.blockUI({ message: $('#your_div') }); 

     //keep a cancel button on #your_div. for eg: consider its id as #cancel_btn 

    }); 

    $('#cancel_btn').click(function(){ 
     $.unblockUI(); 
    }); 
    }); 

Это будет работать. Надеюсь, это поможет вам.

+0

Привет, ваше сообщение было помечено как «низкое качество», вероятно, потому что оно состоит исключительно из кода. Вы могли бы значительно улучшить свой ответ, объяснив, как именно и почему это отвечает на вопрос? Многие люди, как правило, ниспровергают или никогда не будут выдвигать ответы без объяснений, поэтому в ваших интересах это сделать. – Ben

+0

@Ben Теперь я дал полную информацию о том, как работает код. Посмотри на это. – Gourav