Bootstrap模态jquery隐藏不起作用

时间:2016-09-12 14:09:08

标签: jquery twitter-bootstrap modal-dialog

我的模态有问题。

<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>

按钮:

<button type="button" class="btn btn-primary" data-toggle="modal" 
 data-target="#mdProduction">production</button>

模态:

<div id="mdProduction" class="modal fade" role="dialog" >
   <div class="modal-dialog" style="width:45%;">
      <div class="modal-content">
         <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal">&times;</button>
            <h4 class="modal-title">production</h4>
         </div>
         <div class="modal-body">
           some content
         </div>
      </div>
   </div>
</div>

jquery的:

$('#mdProduction').on('hidden.bs.modal', function () {
 alert("Hello World!");
})

但我没有得到任何警报。 我也试过&#34; window.alert&#34;,但它既不起作用。

这只是一个例子。 我想要的是在模态被隐藏时触发一个函数。

感谢您的回答。

2 个答案:

答案 0 :(得分:0)

我认为你的HTML不正确。它应该是:

RewriteCond %{SERVER_PORT} !403

答案 1 :(得分:0)

您正在使用的活动运作良好:

&#13;
&#13;
export const EDITOR_VALUE_ACCESSOR: any = {
    provide: NG_VALUE_ACCESSOR,
    useExisting: forwardRef(() => CKEditorDirective),
    multi: true
};

@Directive({
    selector: 'textarea',
    providers: [EDITOR_VALUE_ACCESSOR]
})
export class CKEditorDirective implements AfterViewInit, ControlValueAccessor {
  ckEditor: any;
  value: string;

  onModelChange: Function = () => { };

  onModelTouched: Function = () => { };

  constructor(private _elm: ElementRef, private zone: NgZone) { }

  writeValue(value: any): void {
    this.value = value;
    if(this.ckEditor) {
        this.ckEditor.setData(value || '');
    }
  }

  ngAfterViewInit() {
    this.ckEditor = CKEDITOR.replace(this._elm.nativeElement);

    if(this.value) {
        this.ckEditor.setData(value || '');
    }

    this.ckEditor.on('change', () => {
      this.zone.run(() => {
        this.onModelChange(this.ckEditor.getData());
      })
    })
  }

  registerOnChange(fn: Function): void {
    this.onModelChange = fn;
  }

  registerOnTouched(fn: Function): void {
    this.onModelTouched = fn;
  }
}
&#13;
$('#mdProduction').on('hidden.bs.modal', function() {
  alert("Hello World!");
})
&#13;
&#13;
&#13;

我认为问题来自于您打开对话框的方式。您可以在尝试打开对话框时共享代码吗?