এ সম্পর্কে আরও নির্দিষ্ট না হওয়ার জন্য আমাকে ক্ষমা করুন। আমার এমন এক অদ্ভুত বাগ আছে। ডক লোড হওয়ার পরে, আমি মূলত কিছু উপাদান লুপ করেছি data-itemname=""এবং ব্যবহার করে আমি সেই মানগুলি সেট করে .attr("data-itemname", "someValue")।
ইস্যু: যখন আমি ঐ উপাদানের পুরনো পরে লুপ, আমি যদি না elem.data().itemname, আমি পেতে "", কিন্তু যদি আমি কি elem.attr("data-itemname"), আমি পেতে "someValue"। এটি jQuery এর প্রাপ্ত ব্যক্তি .data()কেবলমাত্র এমন উপাদান পান যা প্রাথমিকভাবে কিছু মান রাখার জন্য সেট করা থাকে তবে সেগুলি যদি মূলত খালি হয় এবং পরে সেট .data()হয় তবে পরে মানটি পায় না।
আমি এই বাগটি পুনরায় তৈরি করার চেষ্টা করছি কিন্তু সক্ষম হয়ে উঠতে পারি নি।
সম্পাদন করা
আমি বাগটি আবার তৈরি করেছি! http://jsbin.com/ihuhep/edit#javascript,html,live
এছাড়াও উপরের লিঙ্ক থেকে স্নিপেটগুলি ...
জাতীয়:
var theaters = [
{ name: "theater A", theaterId: 5 },
{ name: "theater B", theaterId: 17 }
];
$("#theaters").html(
$("#theaterTmpl").render(theaters)
);
// DOES NOT WORK - .data("name", "val") does NOT set the val
var theaterA = $("[data-theaterid='5']");
theaterA.find(".someLink").data("tofilllater", "theater5link"); // this does NOT set data-tofilllater
$(".someLink[data-tofilllater='theater5link']").html("changed link text"); // never gets changed
// WORKS - .attr("data-name", "val") DOES set val
var theaterB = $("[data-theaterid='17']");
theaterB.find(".someLink").attr("data-tofilllater", "theater17link"); // this does set data-tofilllater
$(".someLink[data-tofilllater='theater17link']").html("changed link text");
এইচটিএমএল:
<body>
<div id="theaters"></div>
</body>
<script id="theaterTmpl" type="text/x-jquery-tmpl">
<div class="theater" data-theaterid="{{=theaterId}}">
<h2>{{=name}}</h2>
<a href="#" class="someLink" data-tofilllater="">need to change this text</a>
</div>
</script>
elem.data("itemname")না elem.data().itemname?
elem.data().itemname = somevalue;অন্তর্নিহিত ডেটা পরিবর্তন হয় না))