2015-11-08 17 views
0

我最近開始學習如何製作一個jQuery插件。這是我第一次嘗試創建非常簡單的東西。對於jQuery我還是比較新的,並且在選擇動態創建的內容時遇到了一些麻煩。在這種情況下,我試圖選擇在插件中創建的div不能在自定義插件中動態創建的div上使用css()

我做了一個jsFiddle here

我已經閱讀了很多關於選擇動態創建的div的帖子,其中大部分都是使用on或回調函數解決的。我不確定這些情況是否適用於這種情況。

我想在代碼中的這一點出現問題:

  $element.append("<div class=\"gifLoader\"></div>"); 
      $gifLoader = $element.find('.gifLoader'); 
      $gifLoader.css("bacground-image", "url(\"" + plugin.settings.gifSrc + "\")"); 
      plugin.settings.callback.call(this); 

有一些方法我可以使用一個回調函數,就像你使用像fadeTo方法呢?另外,如果有人關心評論。我真的很感激我的插件佈局的一些反饋。我並沒有完全理解我在製作插件時做的是什麼,我只是希望學習如何使用Javascript和jQuery,而不需要編碼看起來如此笨重。 (之前,我只是有匿名函數中的匿名函數)

回答

1

你有一個錯字,和一個錯誤:bacground-image =>background-imagesrc() =>url()

變化

$gifLoader.css("bacground-image", "src(\"" + plugin.settings.gifSrc + "\")"); 

$gifLoader.css("background-image", "url(\"" + plugin.settings.gifSrc + "\")"); 
+0

這在jsFiddle中有效,但它在它自己的瀏覽器窗口中運行時不起作用。爲什麼會發生這種情況? – MowgliB

+1

@MowgliB你是否修復了錯別字(src和bacground)? –

+0

棕櫚來面對。我討厭我在這個屏幕上盯着屏幕多久。 – MowgliB

0

當您使用javascript或jquery創建動態元素時,該元素不反映在你的DOM中直接。如果您看一下使用您之前找到的開發人員工具生成的HTML:以及之後:用HTML附加標籤。

意識到這個問題的最好辦法是要麼指定當您創建像div的背景圖片:

$("#element").append("<div class='gifLoader' style='background-image: url('" + plugin.settings.gifSrc + "')'></div>"); 

否則,如果你正在尋找改變某些類型的用戶背景圖像互動,你可以去這樣的:

$("#element").append("<div class='gifLoader' id='someID' someEvent='transform(someID)'></div>"); 

然後還要函數變換()定義有點像:

function transform(elementID) { 
    $("#" + elementID).css("background-image", "some image URL"); 
} 
相關問題