在以下JavaScript代码中,有一个dollar($)符号.这是什么意思?
$(window).bind('load', function() {
$('img.protect').protectImage();
});
Run Code Online (Sandbox Code Playgroud) 我动态创建了一个复选框.我曾经addEventListener在点击复选框时调用了一个函数,该复选框适用于Google Chrome和Firefox,但在Internet Explorer 8中不起作用.这是我的代码:
var _checkbox = document.createElement("input");
_checkbox.addEventListener("click", setCheckedValues, false);
Run Code Online (Sandbox Code Playgroud)
setCheckedValues 是我的事件处理程序.
例如,如果我这样做:
var q = document.querySelectorAll;
q('body');
Run Code Online (Sandbox Code Playgroud)
我在Chrome中收到"非法调用"错误.我想不出为什么这是必要的任何理由.首先,并非所有本机代码功能都是如此.事实上我可以做到这一点:
var o = Object; // which is a native code function
var x = new o();
Run Code Online (Sandbox Code Playgroud)
一切正常.特别是在处理文档和控制台时我发现了这个问题.有什么想法吗?
我正在开发一个复杂的网站,它充分利用了jQuery和许多脚本.在加载网站时,我的脚本都没有工作(虽然我可以确认其他脚本运行正常).除了一件事,我不会在SE上发布这样一个蹩脚的问题:
我点击F12打开开发人员工具,以便我可以调试我的问题,一切都立即完美!
更糟糕的是,如果我关闭浏览器,启动它,首先打开Dev Tools并访问该站点,一切都按预期工作.
所以我甚至无法调试这个问题因为Dev Tools修复了它!Dev Tools可以做些什么让事情发挥作用?它是否改变了UA(我做了一些jQuery.browser检测)?它对doctype有用吗?
编辑
我的所有控制台日志记录都包含在以下包装器实用程序函数中:
function log(msg){
if (console){
console.log(msg);
}
}
Run Code Online (Sandbox Code Playgroud)
我可以尝试的任何想法或建议都会受到欢迎.如果我找到解决方案,我会在这里发布.
我有一些Firebug控制台函数调用,我想在Firebug未启用时禁用,例如未定义控制台.这适用于IE6和FF3,但不适用于Chrome:
var log;
if(console){
log = console.log;
}else{
log = function(){ return; }
}
Run Code Online (Sandbox Code Playgroud)
我在Chrome中收到"未捕获的TypeError:非法调用"= /
我在这里读到了这个问题,你必须应用一个上下文,这对我来说是一种新的...我似乎无法想象如何在所有浏览器中完成上述操作......
可能重复:
JavaScript函数别名似乎不起作用
相关jsfiddle:http://jsfiddle.net/cWCZs/1/
以下代码完美运行:
var qs = function( s ) {
return document.querySelector( s );
};
qs( 'some selector' );
Run Code Online (Sandbox Code Playgroud)
但以下不是:
var qs = document.querySelector;
qs( 'some selector' ); // Uncaught TypeError: Illegal invocation
Run Code Online (Sandbox Code Playgroud)
我不明白为什么.
我的困惑来自于这样的事实:
function t() {
console.log( 'hi' );
}
var s = t;
s(); // "hi"
Run Code Online (Sandbox Code Playgroud) 我得到了Uncaught TypeError: Illegal invocation这个尝试的两个版本都放下了一个EventListener :(我应该在添加监听器时收到错误,而不是在我点击目标时)
ronan.addEventListener("click", alert, false);
addEventListener.apply(ronan, ["click", alert, false]);
ronan是一个div由控制台成功返回的元素,所以我不认为这是问题所在.有什么想法我得到这个错误?我读了这个帖子,我无法弄明白.
我正在修改一些有很多jQuery的代码,但我不确定某些jQuery语句在做什么.
在jQuery代码的顶部有
jQuery.noConflict
Run Code Online (Sandbox Code Playgroud)
*1.我明白那个.但是有一些代码有:
<script type="text/javascript">
(function($) {
$(document).ready(function() {
jQuery.fn.fixEmail = function() {
{
return $(this).each(function() {
var $s = $(this);
...code...
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
我得到jQuery被使用因为noConflict.什么是参数$?
*2.在另一个功能中,他们使用
<script type="text/javascript">
jQuery(function(){
var $ = jQuery;
var cc = {
mode : 'teaser',
featureVisible : true,
$loader : '<p class="loadingAnimation"><img height="32" src="' +
config.xoImgUrl +
'/images/ajax-loader.gif" width="32" /></p>',
....more code...
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
所以他们从noConflict设置$ jQuery.但为什么?他们刚刚使用过jQuery吗?
*3.我想要使用的插件由以下内容初始化:
var $j = jQuery.noConflict();
var $ = {};
$j(document).ready(function(){
$j.history.init(pageload);
$j("a[@rel='history']").click(function(){
...more code...
});
}); …Run Code Online (Sandbox Code Playgroud) 我怎么能将函数"document.getElementById"别名,我已经看到它使用$完成了
谢谢
在Javascript OO中,我何时应该使用this关键字?
另外,如果我想从同一个类的另一个方法调用类的方法,我应该使用this还是只使用函数的名称?这是对的吗?
function Foo()
{
this.bar= function()
{
alert('bar');
}
this.baz= function()
{
this.bar(); //should I use this.bar() or just bar()?
}
}
Run Code Online (Sandbox Code Playgroud)