js不能在bs3ajax模式中工作



我在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);
};

相关内容

  • 没有找到相关文章

最新更新