2012-03-22 35 views
0

我使用教程插件 - http://particlebits.com/code/jquery-tutorial/Click事件侦听器的动态/移动锚

其中有连接到你需要的教程步骤数此代码。

<div for="tutstep4" data-target="#publishbutton" data-arrow="tc" data-location="tr" style="display: block; "> 
     <h1>Almost Done!</h1> 
     <p> 
     Now click "Publish" and you are done. 
     </p> 
    </div> 

我的问题是如何触发附加到每个教程步​​骤的标签的点击事件。

<a id="tutorial-done" class="tutorial-button" href="javascript:void(0);" style="display: block; ">Done!</a> 
<a id="tutorial-cancel" class="tutorial-cancel" href="javascript:void(0);">X</a> 
<a id="tutorial-next" class="tutorial-button" type="button" href="javascript:void(0);" style="display: none; ">Next</a> 
<a id="tutorial-prev" class="tutorial-button" type="button" href="javascript:void(0);" style="display: block; ">Prev</a> 

这些标签和步骤之间移动使用相同的ID的,所以如果我打电话

$('.tutorial-button').click(function(){ 
do something 
}) 

按钮已经被点击的功能不注册。

我不想编辑tutorial.js文件,因为它在不同的页面上使用。 当'#tutorial-prev'被点击后,我能做些什么来'听',然后根据它附加的div调用一个函数?

即,如果在教程步骤为3时单击了“#tutorial-prev”,请执行某些操作?

UPDATE:

加强远离它一会我发现一个更容易的解决方案,只需使用一只猴子补丁的功能脚本中并添加其中包括开/我自己的个人代码关闭所需的div后。

所以它像

$.fn.tutorialNext() { 
// start of original next code. 
//end of original code. 
myfunc(); 
} 

不完全是漂亮,但对于一个页面一个快速解决方案,我需要一些定制。

我最初面临的问题是,当运行Next()函数时,锚标记已经被移除,因此没有执行该功能的元素。

回答

1

我不知道我是否有明确你想什么来实现的,但是当你有单击处理:

$("'#tutorial-prev").on("click", dosomething); 

在做一些事情,你可以复制你想要的单击事件比比皆是:

$(selector).trigger("click"); 
+0

此外,这里是'.on'和'.click'的一个很好的解释。 http://stackoverflow.com/questions/9122078/difference-between-onclick-vs-click – 2014-11-21 13:14:52

0

与您发布的js一样,您使用tutorial-button类将click事件绑定到每个按钮。

您可以通过使用元素的id进一步指定一个按钮,为此您需要将一个回调绑定到每个按钮。

$('#tutorial-prev').click(function(){ //go to previous step }); 
$('#tutorial-next').click(function(){ //go to next step }); 
$('#tutorial-cancel').click(function(){ //cancel actions }); 
... 
0

UPDATE:

加强远离它一段时间后,我发现一个更容易的解决方案,只需使用一只猴子补丁的功能脚本中,并添加自己的个人代码,由开启/关闭所需的分区。

所以它像

$.fn.tutorialNext() { 
// start of original next code. 
//end of original code. 
myfunc(); 
} 

不完全是漂亮,但对于一个页面一个快速解决方案,我需要一些定制。

我最初面临的问题是,当运行Next()函数时,锚标记已经被移除,因此没有执行该功能的元素。