2012-06-03 20 views
14

Tôi đang cố gắng hiển thị hộp thoại bật lên này khi liên kết này được nhấp nhưng nó không hoạt động đối với tôi. Tôi đã làm việc này trong ba giờ qua và điều này đang trở nên quá bực bội đối với tôi.hộp thoại jquery bật lên

Dưới đây là html của tôi

<a href="#" id="contactUs">Contact Us</a> 
<div id="dialog" title="Contact form"> 
    <p>appear now</p> 
</div> 

Và đây là javascript của tôi, đây là trong một tập tin bên ngoài.

$("#contactUs").click(function() { 
    $("#dialog").dialog("open"); 
    return false; 
}); 

Tôi đã sử dụng các liên kết này, nhưng vô ích cho tôi.

http://jqueryui.com/demos/dialog/#modal

http://jqueryui.com/demos/dialog/#default

Xin vui lòng cho tôi biết nếu có một ý tưởng, nhiều đánh giá cao, cảm ơn.

+0

Không có lỗi? Không có hành động trực quan lạ nào? Không có gì ? – Zuul

+0

Nếu bạn quan tâm, tôi có một plugin để làm cho hộp thoại jQuery dễ dàng hơn: http://www.mostthingsweb.com/2011/12/dialogwrapper-2-1-released/ –

+0

xin lỗi, về cơ bản, lỗi là cửa sổ bật lên không hiển thị. Và nhờ liên kết, tôi sẽ kiểm tra điều đó ngay bây giờ. – rj2700

Trả lời

34

HTML Điều này là tốt:

<a href="#" id="contactUs">Contact Us</a>     
<div id="dialog" title="Contact form"> 
    <p>appear now</p> 
</div> 

Bạn cần phải khởi tạo Dialog (không chắc chắn nếu bạn đang làm điều này):

$(function() { 
    // this initializes the dialog (and uses some common options that I do) 
    $("#dialog").dialog({ 
    autoOpen : false, modal : true, show : "blind", hide : "blind" 
    }); 

    // next add the onclick handler 
    $("#contactUs").click(function() { 
    $("#dialog").dialog("open"); 
    return false; 
    }); 
}); 
+0

Cảm ơn, điều này giúp, tuy nhiên, hộp thoại vẫn không hiển thị cho tôi. Tôi sẽ thử nhìn xung quanh hơn. – rj2700

+0

Hãy thử trong fiddle này: http://jsfiddle.net/N7PRp/ Nó làm việc cho tôi. – rcdmk

7

Vấn đề của bạn là lời kêu gọi hộp thoại

Nếu bạn không khởi chạy hộp thoại, bạn không phải vượt qua "mở" để hiển thị hộp thoại:

$("#dialog").dialog(); 

Ngoài ra, mã này cần phải có chức năng $(document).ready(); hoặc thấp hơn các yếu tố để nó hoạt động.

+0

Cảm ơn. Tôi đã thử nó mà không đi qua mở, nhưng vẫn không làm việc cho tôi. Ngoài ra, tôi đã không đăng sự kiện sẵn sàng, nhưng nó có mặt trong tài liệu. – rj2700

+0

Hãy thử câu đố này: http://jsfiddle.net/N7PRp/ Nó hoạt động cho tôi. – rcdmk

3

Nó khá đơn giản, HTML đầu tiên phải được bổ sung:

<div id="dialog"></div> 

Sau đó, nó phải là được khởi tạo:

<script type="text/javascript"> 
    jQuery(document).ready(function() { 
    jQuery('#dialog').dialog({ 'autoOpen': false }); 
    }); 
</script> 

Sau này bạn có thể hiển thị nó theo mã:

jQuery('#dialog').dialog('open'); 
3

Sử dụng dưới đây Mã, Nó làm việc cho tôi.

<script type="text/javascript"> 
    $(document).ready(function() { 
      $('#dialog').dialog({ 
       autoOpen: false, 
       title: 'Basic Dialog' 
      }); 
      $('#contactUs').click(function() { 
       $('#dialog').dialog('open'); 
      }); 
     }); 
</script> 
1

Bạn có thể sử dụng tập lệnh sau. Nó hoạt động cho tôi

Bản thân phương thức bao gồm một thùng chứa phương thức chính, đầu trang, phần thân và chân trang. Chân trang chứa các hành động, trong trường hợp này là nút OK, tiêu đề giữ tiêu đề và nút đóng và nội dung chứa nội dung phương thức.

$(function() { 
     modalPosition(); 
     $(window).resize(function() { 
      modalPosition(); 
     }); 
     $('.openModal').click(function (e) { 
      $('.modal, .modal-backdrop').fadeIn('fast'); 
      e.preventDefault(); 
     }); 
     $('.close-modal').click(function (e) { 
      $('.modal, .modal-backdrop').fadeOut('fast'); 
     }); 
    }); 
    function modalPosition() { 
     var width = $('.modal').width(); 
     var pageWidth = $(window).width(); 
     var x = (pageWidth/2) - (width/2); 
     $('.modal').css({ left: x + "px" }); 
    } 

Tham khảo: - Modal popup using jquery in asp.net