Javascript js在bs3 ajax模式下不工作

Javascript js在bs3 ajax模式下不工作,javascript,jquery,ajax,twitter-bootstrap,Javascript,Jquery,Ajax,Twitter Bootstrap,我在bs3模式中遇到了一些js问题-它不工作。我用ajax打开modals 主页 <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-aj

我在bs3模式中遇到了一些js问题-它不工作。我用ajax打开modals

主页

<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>
<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>
模式页面中的链接

<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>
<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);
};
您可以使用,以便动态加载的链接触发处理程序:

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

这起作用了。。。我在我的custom.js文件中添加了另一个带有'var externalWindows2=function(){$(“#modal ajax”)。在('click',“a[data window='external']”上,function(){window.open($(this.attr('href');return false;});}'这是唯一的方法吗?这意味着我想在远程模态中使用的每个js都需要它。@user756659不,不需要第二个函数,只需将您拥有的函数更改为我发布的函数,一切都应该很好,我需要它在所有页面上工作……不仅仅是模态,但是“使用”ajax模态。虽然我认为body会和我原来的一样有效果,但将#模态ajax换成body似乎是个好办法?但它在常规页面和模态上都起作用。@user756659是的,通常使用
文档
而不是
正文
,但这样做的目的是将处理程序附加到页面上的每次单击,这可能会影响站点的性能,因为事件传播,它与原始代码不同,检查我给你的链接以供参考,也检查jquery的这个工作的参考。。。我在我的custom.js文件中添加了另一个带有'var externalWindows2=function(){$(“#modal ajax”)。在('click',“a[data window='external']”上,function(){window.open($(this.attr('href');return false;});}'这是唯一的方法吗?这意味着我想在远程模态中使用的每个js都需要它。@user756659不,不需要第二个函数,只需将您拥有的函数更改为我发布的函数,一切都应该很好,我需要它在所有页面上工作……不仅仅是模态,但是“使用”ajax模态。虽然我认为body会和我原来的一样有效果,但将#模态ajax换成body似乎是个好办法?但它在常规页面和模态上都起作用。@user756659是的,通常使用
文档
而不是
正文
,但这样做的目的是将处理程序附加到页面上的每次单击,这可能会影响站点的性能,因为事件传播,它与原始代码不同,检查我给你的链接以供参考,也检查jquery的参考