无法自动调用jquery

时间:2016-05-28 08:48:44

标签: javascript php jquery

我使用此javascript函数显示弹出传递url作为参数,但我希望表单在没有onclick的情况下自动显示,并且它不起作用。

<!-- show_modal.php included in body  -->

  <script type="text/javascript">
    function showModal(url)
    {
        // SHOWING AJAX PRELOADER IMAGE
        jQuery('#modal_ajax .modal-body').html('<div style="text-align:center;margin-top:200px;"><img src="assets/images/preloader.gif" /></div>');

        // LOADING THE AJAX MODAL
        jQuery('#modal_ajax').modal('show', {backdrop: 'true'});

        // SHOW AJAX RESPONSE ON REQUEST SUCCESS
        $.ajax({
            url: url,
            success: function(response)
            {
                jQuery('#modal_ajax .modal-body').html(response);
            }
        });
    }
    </script>

<!-- (Ajax Modal)-->

    <div class="modal fade" id="modal_ajax">
        <div class="modal-dialog">
            <div class="modal-content">

                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                    <h4 class="modal-title"><?php echo $system_name;?></h4>
                </div>

                <div class="modal-body" style="height:500px; overflow:auto;">



                </div>

                <div class="modal-footer">
                    <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                </div>
            </div>
        </div>
    </div>

<!-- show_modal.php ends -->

PHP $ url变量

<?php $url = "'".base_url() . "index.php?modal/popup/student_add/1'";?>

自动致电

<script type="text/javascript">

 $(document).ready(function(){
      showModal(<?=$url?>); 
 }); 

 </script>

当我致电documentready时:只显示深色背景

适用于onclick

<a href="#" onclick="showModal(<?=$url?>);" > </a> 

控制台:

console1

console2

3 个答案:

答案 0 :(得分:1)

页面中的哪个位置是RewriteRule ^([^.]+) index.php?routestring=$1 [L,QSA] 来电?如果它位于加载jQuery的位置之上,则ready将无法使用,因为ready尚不存在。

如果是这种情况,您可能会在$的{​​{1}}行中出现错误消息。移动将jQuery加载到您尝试调用它的脚本块上方的脚本标记应该修复它。

当浏览器正在解析页面并且遇到没有ReferenceError: $ is not defined属性的<script>块时,它会立即运行块中的代码。如果脚本标记具有src属性,则会下载代码然后运行它,然后再转到下一个脚本标记。因此,如果在告诉浏览器加载jQuery之前调用src,则浏览器不知道$()的含义,因为jQuery没有将$设置为对自身的引用然而。 (有the console的方式,但你必须选择它们。)

单击链接时它工作的原因是$处理程序在您单击它之前不会运行。这为jQuery提供了加载的时刻,以便在尝试调用它时定义click

答案 1 :(得分:0)

试试这个:

1)确保在传递showModal函数之前生成$ url,因此在页面开头声明$ url

2)从$ url

中删除额外的单引号连接
<?php $url = "aa"."index.php?modal/popup/student_add/1";?> //Remove extra single quote concatenation from $url


<script>
$( document ).ready(function() {  
   showModal('<?php echo $url; ?>'); // add single quotes here
});

function showModal(url)
{
     // SHOWING AJAX PRELOADER IMAGE
        jQuery('#modal_ajax .modal-body').html('<div style="text-align:center;margin-top:200px;"><img src="assets/images/preloader.gif" /></div>');

        // LOADING THE AJAX MODAL
        jQuery('#modal_ajax').modal('show', {backdrop: 'true'});

        // SHOW AJAX RESPONSE ON REQUEST SUCCESS
        $.ajax({
            url: url,
            success: function(response)
            {
                jQuery('#modal_ajax .modal-body').html(response);
            }
        });
}

答案 2 :(得分:-1)

编辑回答

请尝试确定您的脚本中是否会使用jQuery$,此外如果您的脚本运行良好,请点击此元素<a href="#" onclick="showModal(<?=$url?>);" > </a>,然后您可以使用jQuery {{1模拟DOM准备好的模态链接的点击事件。

以下是您想要实现的一些测试小提琴。第一和第二小提琴是好的第3和第4小有一个小缺陷。

http://jsfiddle.net/WQXXT/1911/

http://jsfiddle.net/WQXXT/1912/

http://jsfiddle.net/WQXXT/1913/

http://jsfiddle.net/WQXXT/1914/

在ajax中使用beforeSend的示例

http://jsfiddle.net/WQXXT/1916/