3

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

这是因为我认为我需要将“内联”类添加到 Raphael 元素,但是我的 .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 对象(网址直接取自 JavaScript 文档。

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

4

1 回答 1

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
  });
于 2012-09-13T23:08:34.910 回答