将脚本添加到单独的.js文件中

时间:2013-03-29 08:29:54

标签: jquery asp.net ajax jquery-mobile

我在.aspx页面标题标记上添加了以下脚本,它可以完美解决任何问题。

<script type="text/javascript">
       $('#InfoPage').live('pageshow', function (event) {
           $("#apdf").click(function (e) {
               e.preventDefault();
               var serviceURL = "Default.aspx/GeneratePDF";

               $.ajax({
                   type: "POST",
                   url: serviceURL,
                   data: param = "", // parameter
                   contentType: "application/json; charset=utf-8",
                   dataType: "json",
                   success: successFunc,
                   error: errorFunc
               });

               function successFunc(data) {

                   alert('sucess');
               }

               function errorFunc() {
                   alert('error');
               }

           });
       });
   </script>

后来我想清理我的代码,并将上面的脚本添加到单独的.js文件中,并添加了链接到页眉标记。

<script type="text/javascript" src="PDFScript.js"/>

然后它突然停止工作网页甚至没有渲染任何东西,即使静态内容没有显示。这种情况发生的具体原因是什么?

我也在下面尝试过。

<div data-role="page" id="InfoPage">
 <script type="text/javascript" src="PDFScript.js"/>
</div> 

2 个答案:

答案 0 :(得分:2)

<script type="text/javascript" src="PDFScript.js"/>标记之前导入</body>。另外,请确保在jQuery,jQuery Mobile js库之后导入它。

如果您使用的是jQuery 1.9.x,那么live将不适合您。您需要使用.on()方法。

$(document).on('pageshow', '#InfoPage', function(){
   // your code goes here
});

答案 1 :(得分:1)

改变这个:

$('#InfoPage').live('pageshow', function (event) {

到此:

$(document).live('pageshow', '#InfoPage' ,function (event) {

要理解这一点,请更好地阅读本文(不是我的):http://jqfundamentals.com/chapter/events并查找章节:事件委派