2012-04-25 24 views
1

開発中のサイトでjQuery UI 1.8.19とTwitter Bootstrap 2.0.3を使用しています。イベントを発生するjQuery UIのダイアログが正しく表示されない

<div id="dialog-confirm" title="<?php echo lang("event:delete_confirm_title") ?>"> 
     <p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span><?php echo lang('event:delete_confirm_content') ?></p> 
</div> 

そして、JS、このいずれかです:

$(function() { 
    $("#delete").click(function(){ 
     $("#dialog-confirm").dialog({ 
      resizable: false, 
      height:140, 
      modal: true, 
      buttons: { 
       "<?php echo lang('event:delete') ?>": function() { 
        $(this).dialog("close"); 
       }, 
       "<?php echo lang('global:cancel_label') ?>": function() { 
        $(this).dialog("close"); 
       } 
      } 
     }); 
    }); 
}); 

何らかの理由でモーダルダイアログを削除をクリックし、このために、私はそれを行うにはとき、私はモーダルダイアログを表示したいですページの終わりにいつも表示されるはずですが、要素をクリックするとダイアログが表示されますが、ページは瞬時に私のホームページにリダイレクトされ、リダイレクトがないため原因がわかりませんどの場所にも、そこには形がありません。これに関する助言や助言? よろしくお願いします

+0

万が一あなたが投稿できるリンクに従って行わ?私はprollyあなたがどこかでそれをオンラインで持っている場合、これをかなり速く撃つのを助けることができた – SpYk3HH

答えて

2

は私のSOの質問を参照してください。

ボタンをクリックしたときにそのページが自宅に送信された場合は、通常のクリックイベントハンドラを避けるために、Submitの場合はreturn falseで#deleteのボタンのタイプを確認して機能を終了することができます打ち上げ:

$(function() { 
    $("#delete").click(function(e){ 
     $("#dialog-confirm").dialog({ 
      resizable: false, 
      height:140, 
      modal: true, 
      buttons: { 
       "<?php echo lang('event:delete') ?>": function() { 
        $(this).dialog("close"); 
       }, 
       "<?php echo lang('global:cancel_label') ?>": function() { 
        $(this).dialog("close"); 
       } 
      } 
     }); 
    e.preventDefault(); 
    }); 
}); 

編集:変形スコット提案

+0

ニースマイケルは、多分私は "返信偽"を送信していないので、ページが送信されたので、また、私はスタイルを修正しました: "display:none"とDIVは、ボタンではないボタンをクリックするまで表示されません。ちょうどHREFは、Twitter Bootstrapを使ってボタンとしてスタイルされています。あなたに多くの感謝とすべてのポイント! – ReynierPM

+0

私はおそらく関数に 'e'を渡し、' e.preventDefault(); 'を呼び出すと' e.stopPropogation(); 'も呼び出すので、' return false'の代わりにクリックアクションを防ぐため、他のイベントのバブリングを防ぎますアップ。 –

+0

あなたはサンプルを投稿できますか? – ReynierPM

1

これは私にも起こりました。私が知っている原因は一つだけです。ダイアログCSSファイルがロードされていません。それは起動時に表示されませんので、あなたは、あなたのダイアログのdivにstyle='display: none'を追加する必要がありますposition:fixed breaks in IE9

関連する問題