modal('show')未按预期工作
modal('show') is not working as expected
我制作了一个函数appendScript,它将在按钮点击事件中调用,我的函数代码是
function appendScript() {
var v_js;
var head = document.getElementsByTagName('head')[0];
v_js = document.createElement('script');
v_js.type = 'text/javascript';
v_js.src = "/resource/1372205606000/jquery_min_js";
head.appendChild(v_js);
interval = self.setInterval(function () {
if (jQuery) {
window.clearInterval(interval);
var body = document.getElementsByTagName('body')[0];
v_js = document.createElement('script');
v_js.type = "text/javascript";
v_js.src = "/resource/1372176744000/bootstrap_min_js";
}
body.appendChild(v_js);
var v_css = document.createElement('link');
v_css.rel = "stylesheets";
v_css.type = "text/css";
v_css.href = "/resource/1372206945000/bootstrap_min_css";
body.appendChild(v_css);
}, 300);
var interval1 = self.setInterval( function () {
if (typeof (jQuery.fn.modal) !== 'undefined') {
console.log('Hello!!');
window.clearInterval(interval1);
jQuery(document.getElementsByTagName('body')[0]).append('<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button><h3 id="myModalLabel">Modal header</h3></div><div class="modal-body"><p>One fine body…</p></div><div class="modal-footer"><button class="btn" data-dismiss="modal" aria-hidden="true">Close</button><button class="btn btn-primary">Save changes</button></div></div>');
jQuery('#myModal').modal('show');
}
}, 300);
}
当我点击按钮时,这段代码没有显示modal。当我用show参数调用模态函数时,有人能帮我为什么不显示模态对话吗?正在播放你好!!在控制台中,并正确添加这些元素,但下面是唯一一行没有按预期工作的行。
jQuery('#myModal').modal('show');
我不确定最初的问题是什么,但我注意到设置动态<link>
的rel
属性时使用了"stylesheets",而它应该是"stylesheet"。这两者,以及使用onload
加载东西的方法,我让它工作起来:
function appendScript() {
var head = document.head || document.getElementsByTagName('head')[0],
$script;
if (typeof jQuery === "undefined") {
$script = document.createElement('script');
$script.type = 'text/javascript';
$script.onload = jQueryLoaded;
$script.src = "//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js";
head.appendChild($script);
} else {
jQueryLoaded();
}
}
function jQueryLoaded() {
var head = document.head || document.getElementsByTagName('head')[0],
linkTB = document.createElement('link'),
scriptTB = document.createElement('script');
if (typeof jQuery.fn.modal === "undefined") {
linkTB.rel = "stylesheet";
linkTB.type = "text/css";
linkTB.href = "//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.3.2/css/bootstrap.min.css";
head.appendChild(linkTB);
scriptTB.type = "text/javascript";
scriptTB.onload = twitterBSLoaded;
scriptTB.src = "//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.3.2/js/bootstrap.min.js";
head.appendChild(scriptTB);
} else {
twitterBSLoaded();
}
}
function twitterBSLoaded() {
jQuery(document.body).append('<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button><h3 id="myModalLabel">Modal header</h3></div><div class="modal-body"><p>One fine body…</p></div><div class="modal-footer"><button class="btn" data-dismiss="modal" aria-hidden="true">Close</button><button class="btn btn-primary">Save changes</button></div></div>');
jQuery('#myModal').modal('show');
}
演示:http://jsfiddle.net/hz3Bw/1/
当然,这使用了CDN文件,所以URL已经更改,所以它可以在jsFiddle中工作。
相关文章:
- 函数hide()、prev()、show()被组装以获得所需的结果,但无法理解其工作原理
- show-hide只在ajax调用中第一次工作
- ng show和ng hide don'I don’我一秒钟都不工作
- 使ng-show/ng-hide与由Angular之外的外部源修改的localStorage一起工作
- 无法使 ng-show 正常工作
- Javascript hide/show 切换在 Opera 中是双向的,但在其他浏览器中只能以一种方式工作
- 当值更改时,角度ng-show无法正常工作
- Packery - jquery show/hide有效,但不能以其他方式工作
- ng-show工作,但与预期相反
- ng-show 无法在 ng-animate 中正常工作
- jQuery.show没有在.each中工作
- .show()和.hide()在jquery中是如何工作的
- Vue.js的v-show和v-else没有按预期工作
- modal('show')未按预期工作
- JQuery .show()和.hide()不能正常工作
- .show()不能在ajaxstart()中工作
- Jquery show hide在大屏幕上不能正常工作.而且在移动设备上完全不起作用
- 为什么这个ng-show指令不工作?
- AngularJS的ng-show不工作
- angularjs的ng-show绑定不能在jQuery中工作