如何让我的点击捕捉器工作
How do I make my click catcher work?
我正在尝试创建一个简单的点击捕捉器,如果你点击.image-class
javascript将从另一个类名为.btn
的元素中获取href,并将你发送到它的目的地。虽然我在第 7 行和第 10 行不断收到错误,说未定义不是一个函数。我该如何完成这项工作?
<script>
var ClickCatcher=
{
init:function(){
var link = jQuery('.btn')[1].href;
var imgCatch = jQuery('.image-class');
imgCatch.addEventListener("click", ClickCatcher.clickListener, false);
},
clickListener:function(){
window.location = link;
}
};
ClickCatcher.init();
</script>
你可以用jquery通过一个简单的点击事件来做到这一点
jQuery('.image-class').on('click', function (){
window.location = jQuery('.btn').eq(1).attr('href');
});
但是如果你仍然想以你的方式写作,你可以这样做:
var ClickCatcher = {
init: function () {
jQuery('.image-class').on('click', function (){
window.location = jQuery('.btn').eq(1).attr('href');
});
}
};
ClickCatcher.init();
只需确保在 dom 加载后触发 init 方法即可。
更新:它的一个问题是您在代码中编写了目标等代码而不是传递它,因此很难重用,您最好这样做:
var ClickCatcher = {
init: function ($button, loc) {
$button.on('click', function (){
window.location = loc;
});
}
};
ClickCatcher.init(jQuery('.image-class'), jQuery('.btn').eq(1).attr('href'));
这样,内部工作与 dom 是分开的(因为您将 dom 依赖项传递给函数。
@atmd展示了一个非常好的方法。如果你只是想知道你的错误是什么。在你的jQuery状态中获取btn href是一个错误
jQuery('.btn')[1].href
你需要调用 attr 函数,然后获取 href attr.并使用 .eq(1) 将集合减少到第一个 btn
jQuery('.btn').eq(1).attr('href);
相关文章:
- 我的shareService在angular 2中发送值工作正常,但当我渲染我的另一个组件时,会获得默认值
- 我的django模板布尔变量是't在javascript中按预期工作
- 为什么不是'我的JS滑块正在工作
- 为什么不是'我的函数在解析云代码中工作吗?当我在Angular和Express中测试时,它是有效的
- 为什么jquery悬停在jsfiddle中可以工作,而在我的html布局中却不能
- 为什么这个jQuery可以作为一个小提琴工作,但在我的网页上没有
- 为什么我的JavaScript在Safari上的严格模式下不能正常工作
- 由于某种原因,我的JavaScript函数无法工作
- 为什么获胜'我的自定义功能工作
- 我需要一个jQuery函数来只工作在700px以上的屏幕大小,无法在我的代码中发现错误
- 我的动画没有按预期工作
- 为什么不是't我的“;虚拟的“;阵列工作
- 为什么动态加载的事件在我的代码中不能正常工作
- 我的时间倒计时脚本在谷歌浏览器中工作正常,但在其他浏览器中打开时它显示为南楠
- 关于使用.className的建议,目前还没有;我不能在我的圈子里工作
- onbeforeunload事件在我的代码中没有触发,但其他示例可以工作
- 如何获得所需的自动对焦验证以在 html 表单上工作?- 我的尝试无法验证
- 为什么不工作我的函数xmlParser().请帮帮我
- 点击后不工作我的功能
- 不工作我的ajax调用函数myalert()