0

更新

感谢一些好的反馈。我的代码确实有多个错误,但是

我的问题实际上是我的 jquery/javascript 函数中的代码中的一个字符串(我没有在这里发布,因为我不认为它有问题)

错误的字符串:

var deleteAnswer = prompt("Are you sure you want to delete this project?\nName: "+<?=$project['projName']?>+"\nCompany: "+<?=$project['compName']?>);

正确的字符串:

var deleteAnswer = prompt("Are you sure you want to delete this project?\nName: <?=$project['projName']?>\nCompany: <?=$project['compName']?>");

我也将切换到仅使用document.ready,而不是window.load

我使用 Firefox,但会开始检查 F12 控制台中的错误 -> 错误

JSHint 也是一个不错的提示,因为我可以在那里检查我的代码。

非常感谢你们的反馈!=)


我现在一直在我的页面上使用 javascript 和 jquery,直到现在它一直运行良好。

由于某种原因,我的<script>标签内的所有代码都不会再触发。也许我错过了一些重要的东西。

我已经删除了一些代码,但我希望这是足够的信息。我检查了源代码,看它是否指向正确的 js 文件,它是。

此外,在此之前添加此代码<title>也可以:

<script type="text/javascript">
$(document).ready(function(){ 

$("div").css("border", "3px solid red");

});
</script>

无论如何,这是我的部分代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<!--<script src="jquery-1.10.2.min.js"></script>-->
<script src="jquery/jquery-1.9.1.js"></script>
<script src="jquery/ui/jquery.ui.core.js"></script>
<script src="jquery/ui/jquery.ui.datepicker.js"></script>
<link rel="stylesheet" type="text/css" href="jquery/themes/base/jquery-ui.css">

<link rel="stylesheet" type="text/css" href="style.css">

<title>title goes here</title>

</head>

<body>
<script>
    <!-- ########## WINDOW.load ############### -->
    $(window).load(function(){
        $('#topBarWrapper').hover(function() {
            $('#topBarDropDown').stop();
            $('#topBarDropDown').animate({top:'-30px'});
        }, function() {
            $('#topBarDropDown').stop();
            $('#topBarDropDown').animate({top:'-60px'});
        });

        $('#deleteProjectBtn').click(deleteProject);
        $('#cancelProjectBtn').click(cancelProject);

        $( "#datepicker" ).datepicker({ dateFormat: "yy-mm-dd" });
    });

    function someFunction(){
        //do something
    }

    function cancelProject(){
        window.location = 'admin.php';
    };

    <!-- ########## DOCUMENT.ready ############### -->
    $(document).ready(function(e) {
        alert("document is ready");
        var myCompSelector = document.getElementById('fcompanySelection');
        myCompSelector.selectedIndex = parseInt(<?=$project['companyID']?>)-1;

        var myCatSelector = document.getElementById('category');
        myCatSelector.selectedIndex = parseInt(<?=$project['categoryID']?>)-1;
    });

</script>
4

3 回答 3

1

问题在于您的评论:

<!-- ########## WINDOW.load ############### -->

这仅适用于 HTML 或 XML。你需要的是:

//########## WINDOW.load ###############

或者

/* ########## WINDOW.load ############### */

于 2013-08-26T12:37:57.393 回答
1

从评论到回答:

您的评论格式错误。

<!-- HTML Comment -->

// Javascript single line

/*
   Javascript
   Multiple lines
*/

更多信息:https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Code_comments

编辑

我可以看到你使用<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

你也说那<script type="text/javascript">行不通<script>

所以你可能需要<script type="text/javascript">在正文中添加而不是<script>

或更改为<!doctype html>每个浏览器都支持的内容。

于 2013-08-26T12:38:25.820 回答
1

尝试 :

<script>

    function someFunction(){
        //do something
    }

    function cancelProject(){
        window.location = 'admin.php';
    };

    /** ########## DOCUMENT.ready ############### **/
    $(document).ready(function(e) {
        alert("document is ready");
        $('#topBarWrapper').hover(function() {
            $('#topBarDropDown').stop();
            $('#topBarDropDown').animate({top:'-30px'});
        }, function() {
            $('#topBarDropDown').stop();
            $('#topBarDropDown').animate({top:'-60px'});
        });

        $('#deleteProjectBtn').click(deleteProject);
        $('#cancelProjectBtn').click(cancelProject);

        $( "#datepicker" ).datepicker({ dateFormat: "yy-mm-dd" });


        var myCompSelector = document.getElementById('fcompanySelection');
        myCompSelector.selectedIndex = parseInt(<?=$project['companyID']?>)-1;

        var myCatSelector = document.getElementById('category');
        myCatSelector.selectedIndex = parseInt(<?=$project['categoryID']?>)-1;
    });

</script>
  • 用于//内联注释,/* ... */用于注释块/** ... **/用于文档目的注释块
  • .load()是一种将远程内容加载到元素中的 Ajax 方法,$(document).ready(function(){})或者$(function(){})
  • 不知道这是不是故意的,但你也有 PHP 部分不会执行客户端:

        var myCompSelector = document.getElementById('fcompanySelection');
        myCompSelector.selectedIndex = parseInt(<?=$project['companyID']?>)-1;
    
        var myCatSelector = document.getElementById('category');
        myCatSelector.selectedIndex = parseInt(<?=$project['categoryID']?>)-1;
    
  • 请记住始终先尝试使用调试器控制台(chrome 上的 F12 按钮),然后使用极简代码制作一个剥离的jsFiddle以重现错误。如果您大部分时间都这样做,您的代码将在缩小错误范围的同时已经被调试。

  • 喜欢console.log('text here or even javascript objects')而不是alert()

这是您的代码示例(我已注释掉 PHP 部分以便它可以运行):http: //jsfiddle.net/techunter/MRZSh/

于 2013-08-26T12:39:18.530 回答