2016-10-08 6 views
0

私は最初に非表示にしてから、mouseenterとmouseleaveを表示および非表示にしたい見出しを含む新しいdivを追加しました。このコードはコンソールで正常に動作しますが、コードベースで実行すると機能しません。show()とhide()のjQueryコードはコンソールでは動作しますが、コードベースでは機能しません。スローされたエラーは ".show()と.hide()関数ではありません"と表示されます

var optly = function() { 
$('.nh-copy-wrap > .title').each(function() { 
if ($(this).html().indexOf('Market to a person, not a segment')>-1 && $(this).hasClass('optly') == false) { 
    $("<div class= \"promo-h2\">Personalization solutions help you tailor messages to match customers across devices and channels...</div>").insertAfter(this); 
    $("div.nh-promo-card-holder:contains('Market to a person, not a segment')").find("div.nh-icon.ibm-arrow-forward-link").addClass("personalization-cta"); 
    $(".nh-icon.ibm-marketplace-link").addClass("marketplace-logo"); 
    $(this).addClass('optly'); 
} 
else if ($(this).html().indexOf('Understand and engage in the mobile moment')>-1 && $(this).hasClass('optly') == false) { 
    $("<div class= \"promo-h2\">Six billion mobile devices is a big target for marketers. Mobile marketing solutions allow marketers to engage customers...</div>").insertAfter(this); 
    $("div.nh-promo-card-holder:contains('Understand and engage in the mobile moment')").find("div.nh-icon.ibm-arrow-forward-link").addClass("mobile-cta"); 
    $(".nh-icon.ibm-marketplace-link").addClass("marketplace-logo"); 
    $(this).addClass('optly'); 
} 
else if ($(this).html().indexOf('Create high performing, highly-relevant emails')>-1 && $(this).hasClass('optly') == false) { 
    $("<div class= \"promo-h2\">Six billion mobile devices is a big target for marketers. Mobile marketing solutions allow marketers to engage customers through these pervasive devices with...</div>").insertAfter(this); 
    $("div.nh-promo-card-holder:contains('Create high performing, highly-relevant emails')").find("div.nh-icon.ibm-arrow-forward-link").addClass("email-cta"); 
    $(".nh-icon.ibm-marketplace-link").addClass("marketplace-logo"); 
    $(this).addClass('optly'); 
} 
}); 
setInterval(optly, 50); 
}; 

var HoverOver = function() { 
$(".nh-promo-card-holder").bind("mouseenter", function() {$(".promo- h2").show();}); 
$(".nh-promo-card-holder").bind("mouseleave", function() {$(".promo-h2").hide();}); 
}; 

$(document).ready(function() { 
optly(); 
setInterval(HoverOver, 200); 
}); 

私は$(document).readyを使用して、新しいdiv要素は、以下のコードを実行する前に、操作するための利用可能ですが、コンソールはまだだけでなく非表示についても同様"...show() is not a function"をというエラーをスローし、されるまで待ってみました。誰も助けることができますか?スクリプトこれは、ページ内の何か他のもののように聞こえる

+1

jQueryを含まないか、jQueryがロードされる前に 'show()'または 'hide() 'を呼び出しているかのように、完全なコードがなければ、 – Gabriel

+0

.promo-h2がDOMに追加された後、このコードが実行されていますか? –

答えて

0

てみ

$(document).ready(function(){

})

にあなたのコードを配置し、jQueryのを含むようにコードをラップする:

また
(function($){ 
    /* your code */ 

})(jQuery); 

jQuery.jsロード後にこの負荷を確認してくださいあなたはまた、jQueryのは、まだロードされていないので、あなたが要素

+0

素早く返信いただきありがとうございました!私はそれをやろうとしましたが、私はまだ同じエラーに遭遇しています。元の投稿を完全なコードで編集しました。十分な文脈であることを望みます! – ml942

0

$

てみてくださいを使用している前に、

0

これが最も可能性が高いが起こるを見つけるのですか間隔をクリアする必要があり

注意。 jQueryを使用するコードでは、jQueryにアクセスできません。その結果、動作していません。

$(document).ready(function(){ 

}); 

とjQueryのscript要素の後にあなたのscript要素を移動:あなたはアレックスMuravyovが言ったようにしなければならないこの問題を解決するには 。

関連する問題