0

カスタム属性をスクリプトに渡そうとしています。このように渡すと:

$('a.load-local-image').cluetip( {
    local:true, 
    leftOffset: $("#par-1").attr("leftpos")
);

それは正常に動作します。ただし、par-1 だけでなく、現在の要素の属性を渡す必要があります。このように試してみると:

$('a.load-local-image').cluetip( {
    local:true, 
    leftOffset: $(this).attr("leftpos")
);

関数は、パラメーターがまったく渡されていないと見なします。そこで、関数を mouseenter() でラップしてみました:

$('a.load-local-image').mouseenter( {
    $(this).cluetip( {
        local:true, 
        leftOffset: $(this).attr("leftpos")
    });
});

これは問題なく動作しますが、ヒント スクリプトを実行する前に2 回マウスオーバーする必要があります。私もこの方法でcluetip()をプリロードしようとしました:

$('a.load-local-image').cluetip();
$('a.load-local-image').mouseenter( {
    $(this).cluetip( {
        local:true, 
        leftOffset: $(this).attr("leftpos")
    });
});

そして、それはまだ同じことをします。また、mouseover、mouseout、mouseleave、hover、および考えられるその他すべてのマウス関連機能も試しました。

不可解な理由で、問題は $(this) に関連しているようです。$(this) 以外をパラメーターとして使用すると、すべて正常に動作します。残念ながら、現在の要素を渡す方法は $(this) しかありません。

マークアップは次のとおりです。

<div id="par-1">
    <a id="load-local" class="load-local-image featurelink" title="" href="" rel="#whatever" leftpos="220" toppos="48">
    <img src="images/image.jpg" alt="" class="featureimg"></a> 

何が起こっているかについてのアイデアはありますか?

4

1 に答える 1