3

StackOverflow の新機能であり、JavaScript/jQuery の新機能です。ベクトル マップ (Raphael プラグインを使用) を含む Web サイトを開発しようとしています。マップの特定の領域をクリックすると、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>

私の問題は、Raphael オブジェクトが HTML に存在しないためだと思います (URL は 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 に答える