次のjquery selectが期待されるオブジェクトではなく要素を返す理由を理解してください。ありがとう。
<div class="partner-tab partner-tab-opaque remove4" id="tab-5"> <a href="#">
<img class="blink" src="../skin/images/logo_endicia.png">
</a>
</div>
コード
$("<a href=\"#\" />")
.on("click", {
"partnerId": pid
}, function (e) {
return showPartnerSettings(e);
})
.appendTo("#footer #tab-" + pid);
// $("<a href=\"#\" />")[ < a href = "#" > < /a> ]
エラー:
キャッチされていない TypeError: オブジェクト [オブジェクト オブジェクト] にメソッド 'on' がありません
関数全体は次のとおりです。
$(document).ready(function () {
showPartnerTabs = function (flashUSPS) {
$.post("<?=$this->baseUrl('partner/ajaxgetactive')?>", {}, function (data) {
var partner = data.partners;
//alert((data.partners).length);
/* $("#footer .partner-tab").remove();*/
var remove = 1;
var doc = $(document);
for (var id in data.partners) {
if (partner[id].toggle_value == "on") {
remove++;
logo = partner[id].logo_file;
var pid = parseInt(id) + 1;
$("<div class=\"partner-tab partner-tab-opaque remove" + remove + "\" id=\"tab-" + pid + "\" />")
.appendTo("#footer");
$("<a href=\"#\" />")
.on("click", {
"partnerId": pid
}, function (e) {
return showPartnerSettings(e);
})
.appendTo("#footer #tab-" + pid);
var logochck = "tab-" + pid;
//alert(logochck);
if (flashUSPS && logochck == 'tab-5') {
$("<img class='blink' src='../skin/images/" + logo + "' />")
.appendTo("#footer #tab-" + pid + " a");
} else {
$("<img src='../skin/images/" + logo + "' />")
.appendTo("#footer #tab-" + pid + " a");
}
//$("</div>").appendTo("#footer");
}
/*
else
{
$("<div class=\"partner-tab partner-tab-opaque remove" + remove + "\" id=\"tab-" + pid + "\" />")
.appendTo("#footer");
$("<a href=\"#\" />")
.on("click", { "partnerId": pid }, function(e){ return showPartnerSettings(e); })
.appendTo("#footer #tab-" + pid);
$("<img src='../skin/images/" + logo + "' />")
.appendTo("#footer #tab-" + pid + " a");
//$("</div>").appendTo("#footer");
}
*/
}
//alert($(".remove2").length);
if ($(".remove2").length > 1) {
$($(".remove2")[0]).remove();
$($(".remove3")[0]).remove();
$($(".remove4")[0]).remove();
}
}, "json");
}
$(".Partnerconnection ul li .controls .toggle-switch").on("click", null, function () {
$(this).showPartnerTabs();
});
showPartnerTabs(<?=$flash?>);
});
コメントで述べたように、関数宣言を「$.fn.showPartnerTabs()...」から「showPartnerTabs()...」に変更するまで、この関数は正常に機能していました。これは役に立ちますか?