Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript事件处理_Javascript - Fatal编程技术网

javascript事件处理

javascript事件处理,javascript,Javascript,我正在开发一个非常轻量级的系统来测试我为工作而构建的javascript框架 我已经创建了一个测试函数,它充当一个包装器,在try/catch中调用我正在测试的函数,以报告反馈,而不中断我的测试周期。问题是,当我故意创建错误时,我的捕获没有被调用 我的代码 /// <summary> /// Acts as a wrapper to allow us to perform and report the result /// of each i

我正在开发一个非常轻量级的系统来测试我为工作而构建的javascript框架

我已经创建了一个测试函数,它充当一个包装器,在try/catch中调用我正在测试的函数,以报告反馈,而不中断我的测试周期。问题是,当我故意创建错误时,我的捕获没有被调用

我的代码

    /// <summary>
    ///     Acts as a wrapper to allow us to perform and report the result 
    ///     of each individual
    ///     test without blocking further tests.
    /// </summary>
    /// <param name="selector" type="String">
    ///     The id jQuery selector e.g #versionTests to repot feedback to.
    /// </param>
    /// <param name="testFunction" type="Function">
    ///     The test function to call.
    /// </param>
    test: function (selector, testFunction) {

        try {
            // now we are calling our own callback function
            if (typeof testFunction === 'function') {

                testFunction.call();
            }
        } catch (e) {

       jQuery(selector).addClass("error").append("<p>" + e.description + "</p>");

        }

    }
这就叫。。。。。。。(
this.selector
是反映jQuerys选择器的属性。) 注意
$selector.height(最高)上缺少的
'$'

均衡器高度:功能(){
/// 
///使指定元素的高度相等。
/// 
var$selector=0,$selector=this.selector;
$selector.each(函数(){
var$height=jQuery(this).height();
如果($height>$highter){
$highter=$height;
}
});
//ie6高度与其他浏览器的最小高度相同。
if(PeachUI.browser.ie6){
$selector.高度(最高);
}否则{
$selector.css(“最小高度“,$highter);
}
}

要么testFunction没有被调用(它被包装在条件中),要么添加错误的代码不正确


我将使用调试器跟踪测试执行,并验证它是否遵循您认为的路径。或者console.logs()

要么testFunction没有被调用(它被包装在一个条件中),要么添加错误的代码不正确


我将使用调试器跟踪测试执行,并验证它是否遵循您认为的路径。或者console.logs()

您实际上不需要调用
.call()
。您只需使用:

testFunction();
如果要显式设置执行上下文,可以使用
.call(context,param1,param2,…)

你如何“故意”制造错误?尝试在
testFunction
like中引发异常

throw new Error('Foo Bar');
这里最后要提到的是,
异常对象
不拥有属性
描述
,而是
消息


示例:

实际上不需要调用
.call()
。您只需使用:

testFunction();
如果要显式设置执行上下文,可以使用
.call(context,param1,param2,…)

你如何“故意”制造错误?尝试在
testFunction
like中引发异常

throw new Error('Foo Bar');
这里最后要提到的是,
异常对象
不拥有属性
描述
,而是
消息

示例:

当我看你的照片时,我觉得你做了一件了不起的事(最后几行):

在这里,您将对
PeachTest.testNumeric
的引用传递给
PeachTest.test
,但您正在调用其他三个测试函数,并将这些函数返回的值传递给
PeachTest.test

删除这些参数后面的函数调用操作符(
()
),您的测试函数将按预期工作。

当查看您的时,我觉得您做了这件了不起的事情(最后几行):

在这里,您将对
PeachTest.testNumeric
的引用传递给
PeachTest.test
,但您正在调用其他三个测试函数,并将这些函数返回的值传递给
PeachTest.test


删除函数调用操作符(
()
)在这些参数后面,您的测试函数按预期工作。

您可以发布应该创建错误的代码吗?您可以发布应该创建错误的代码吗?@hvgotcodes:testfunction在我删除错误时肯定会在运行时被调用。@hvgotcodes:testfunction在运行时肯定会被调用当我删除错误时。@jAndy:您可以将description属性归咎于w3schools。詹姆斯:W3Schools充满了错误、糟糕的编码实践、可怕的例子等等。请注意,W3Schools根本不隶属于W3C。要获得更好的指南,请参阅(您可以在那里看到
description
是一个专有属性)。@JamesSouth:我不怪任何人。我只是想指出:)@jAndy很抱歉回复太慢(漫长的周末)。我已经尝试了你的建议,但是错误消息没有传递给处理程序。这超出了我的能力。我已经创建了一个关于小提琴的例子,如果你喜欢一个裂纹@Marcel:Thancing链接。非常有用。@jAndy:你可以把description属性归咎于学校。詹姆斯:W3Schools充满了错误、糟糕的编码实践、可怕的例子等等。请注意,W3Schools根本不隶属于W3C。要获得更好的指南,请参阅(您可以在那里看到
description
是一个专有属性)。@JamesSouth:我不怪任何人。我只是想指出:)@jAndy很抱歉回复太慢(漫长的周末)。我已经尝试了你的建议,但是错误消息没有传递给处理程序。这超出了我的能力。我已经创建了一个关于小提琴的例子,如果你喜欢一个裂纹@Marcel:Thancing链接。非常有用。
PeachTest.test("#versionTests", PeachTest.testVersion());
PeachTest.test("#browserTests", PeachTest.testBrowser());
PeachTest.test("#isNumericTests", PeachTest.testNumeric);
PeachTest.test("#heightTests", PeachTest.testEqualizeHeight());