我在bs3模式中使用js时遇到了一些问题-它不起作用。我用ajax打开模态。
主页
<a href="/modals/comp_activate.php" data-target="#modal-ajax" data-toggle="modal"><i class="fa fa-plus-circle"></i> Activate this computer</a>';
<div class="modal fade" id="modal-ajax" tabindex="-1" role="basic" aria-hidden="true">
<img src="/assets/img/ajax-modal-loading.gif" alt="" class="loading">
</div>
<script src="/assets/scripts/custom/custom.js" type="text/javascript"></script>
<script>
jQuery(document).ready(function() {
Custom.init();
});
</script>
自定义.js
var Custom = function () {
// private functions & variables
// external window links
var externalWindows = function() {
$("a[data-window='external']").on('click', function() {
window.open($(this).attr('href'));
return false;
});
}
// public functions
return {
//main function
init: function () {
//initialize something here
externalWindows(); // external window links
}
};
}();
模式页面中的链接
<a class="btn btn-primary" href="http://www.somesite.com/" data-window="external" onClick="$('#modal-ajax').modal('hide');"><i class="fa fa-shopping-cart"></i> Purchase Now</a>
所做的只是在浏览器的新窗口中打开任何带有data-window="external"
的链接。由于模态页面是用ajax打开的,所以主页面的js在加载时不会"拾取"它。我也可以在我的模态页面上添加该函数,但它会导致主页面出现问题。
我在这里能做什么?
您可以使用事件委派,以便动态加载的链接触发您的处理程序:
var externalWindows = function () {
function openWindow() {
window.open($(this).attr('href'));
return false;
}
$("a[data-window='external").click(openWindow);
$("#modal-ajax").on('click', "a[data-window='external']", openWindow);
};