是StackOverflow的新功能,而JavaScript / jQuery则相对较新。我一直在尝试开发一个包含 vector map 的网站(使用Raphael插件),并且当单击 map 的特定区域时,我希望它使用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
    })

彩盒使用普通链接,如下所示。但是我不知道将类添加到我的.click函数的方法。我尝试了.addClass和类似版本的各种版本,但均未成功。
<a href="#link" class="inline">LINK</a>

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

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

最佳答案

不会假装试图完全理解您想要什么,所以我不再使用当前标题。如果是这种情况,并且您想为一种或多种类型的样式目的将一个类添加到元素,并且您希望它在单击链接时可以执行此操作。

$('.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
  });

关于javascript - 将类添加到.click函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12415918/

10-12 13:16