将类添加到.click函数

时间:2012-09-13 22:52:10

标签: javascript jquery raphael colorbox

StackOverflow的新手,是JavaScript / jQuery的新手。我一直在尝试开发一个包含矢量地图的网站(使用Raphael插件),当点击地图的某个特定区域时,我希望它使用Colorbox插件打开一个Lightbox。我有Raphael和Colorbox插件单独工作(我已经为Raphael工作了悬停功能,并且我点击了常规链接后Colorbox工作)。但是,我不确定当它是一个被点击的Raphael元素时如何让Colorbox工作。

这是因为我认为我需要在Raphael元素中添加“inline”类,但是我的.click函数只能获取一个url(我不能添加一个类)。

道歉,如果这个问题没有多大意义,我现在已经圈了几个小时了。

当前.click功能。 locs是一个独立文档中的Raphael对象数组。 locarr是一个包含for循环的这些对象的数组。 id和url是Raphael对象的元素。

    .click(function(){
       location.href = locs[locarr[this.id]].url
    })

Colorbox使用普通链接,如下所示。但我无法想出一种方法将类添加到我的.click函数中。我已经尝试了各种版本的.addClass和类似的但没有成功。

<a href="#link" class="inline">LINK</a>

我认为我的问题是因为HTML中不存在Raphael对象(该URL直接来自JavaScript文档。

如果这没有意义,请再次抱歉。感谢。

1 个答案:

答案 0 :(得分:0)

不要假装尝试完全理解你想要的东西,所以我要离开现在的头衔。如果是这种情况,并且您想要为一个或另一种样式目的添加一个类,并且您希望它在单击链接时执行此操作,您可以尝试...

$('.inline').click(function(e)
 {
    e.preventDefault();//stops the mouse click from triggering a normal click event
    $(this).addClass('className');//adds a defined class from your stylesheet
    //$(this).css({"color":"#FF0"});//changes the style properties without a class
  });

因为你在评论中说你的JS正在生成链接。你可以试试..

$('body').delegate('click', '.inline', function(e)
 {
    e.preventDefault();//stops the mouse click from triggering a normal click event
    $(this).addClass('className');//adds a defined class from your stylesheet
    //$(this).css({"color":"#FF0"});//changes the style properties without a class
  });

或者你可以尝试

$('.inline').live('click', function(e)
 {
    e.preventDefault();//stops the mouse click from triggering a normal click event
    $(this).addClass('className');//adds a defined class from your stylesheet
    //$(this).css({"color":"#FF0"});//changes the style properties without a class
  });