Javascript 调用jquery函数并在arrow键上向其传递对象
尝试调用函数“clickEvent()”,并使用jQuery向其传递一个带有arrow-keyUp属性的obj。但是我还没有达到功能。这是代码。谢谢 请注意:我正在分叉现有代码,但正在向其中添加my arrowPress事件。因此,在(direction!=null)区域中,所有内容都应保持文档就绪状态。Javascript 调用jquery函数并在arrow键上向其传递对象,javascript,jquery,function,keypress,Javascript,Jquery,Function,Keypress,尝试调用函数“clickEvent()”,并使用jQuery向其传递一个带有arrow-keyUp属性的obj。但是我还没有达到功能。这是代码。谢谢 请注意:我正在分叉现有代码,但正在向其中添加my arrowPress事件。因此,在(direction!=null)区域中,所有内容都应保持文档就绪状态。 $(document).ready(function() { $('body').keyup(function(event) { var direction = nul
$(document).ready(function() {
$('body').keyup(function(event) {
var direction = null;
// handle cursor keys
if (event.keyCode == 37) {
// slide left
direction = 'prev';
} else if (event.keyCode == 39) {
// slide right
direction = 'next';
}
if (direction != null) {
//alert($('.'+ direction).attr('rel'));
//need to pass the alert above as an obj to the function clickEvent() below.
}
});
}); //end $(document).ready
//function on external .js src
(function($) {
function clickEvent(obj) {
alert(obj.attr("rel"));
}
$.fn.slidingPage = function(options) {
$el = $(this);
}
})(jQuery); //end ext js scr
函数
clickEvent
位于另一个函数的作用域内,请将它们置于同一作用域或更高的作用域中:
function clickEvent(obj) {
alert(obj.attr("rel"));
}
$.fn.slidingPage = function(options) {
var $el = $(this);
};
(function($) {
$('body').keyup(function(event) {
var direction = null;
// handle cursor keys
if (event.keyCode == 37) {
// slide left
direction = 'prev';
} else if (event.keyCode == 39) {
// slide right
direction = 'next';
}
if (direction != null) {
clickEvent( $('.'+ direction) );
}
});
});
没有理由将
clickEvent
和slidingPage
声明放在文档就绪处理程序中。如果需要将代码包装到匿名函数中以防止全局变量污染,则事件和函数代码应放在同一范围内
您可能需要在.prev和.next上触发单击事件
$(document).ready(function() {
$('body').keyup(function(event) {
var direction = null;
// handle cursor keys
if (event.keyCode == 37) {
// slide left
direction = 'prev';
} else if (event.keyCode == 39) {
// slide right
direction = 'next';
}
if (direction != null) {
$('.'+ direction).click()
}
});
}); //end $(document).ready
感谢Andrey Kuzmin
if (direction != null) {
$('.'+ direction).click();
}
抱歉,我忘了提到我正在分叉现有代码,但正在向其中添加我的arrowPress事件。因此,在(direction!=null)区域中,所有内容都应保持文档准备就绪的预期状态。@fhonics仅需更改external.js。如果你不能更改它,你就不能调用其中的函数,因为它在一个函数中。OK,我想这很简单。不过我可以试试。JS不是我的背景,所以我不想错过太多已经运行的现有代码。但是我会试着在几分钟内让你知道,我打破了现有的分叉代码,仍然无法在arrowPress上工作。我认为我应该更改的只是If中的信息!=null语句或尽可能减少对ext js的更改。哪些代码是您的,哪些是分叉代码?如果
external.js src
是分叉的,那么请提供一些关于如何在分叉代码中使用clickEvent的附加信息。如果它绑定到一些元素,那么您可以在它们上触发它而不修改js文件。这就是我从prev btn得到的,如果按钮已经工作,那么为什么您不在document keypressed事件上触发它的clicked事件呢?您是否尝试过将$('..+方向)放入中。如果(方向!=null)
检查,请单击中的()!!!!!!grrrrr!!!它是有效的。。。我觉得这很简单。我读了各种各样的东西,尝试了很多其他的东西,但不是那样。谢谢你,巴德。我欠你一杯啤酒。