我正试图弄清楚如何在点击它时将新的更改返回或应用回html。
看看“TODO”的评论。我可以在$(o1)上看到新的值更改,但是如何将其冒泡到具有“this”值的点击后调用方?
var fooMouseClick = function(parmThis)
{
var $HtmlSpans = $(parmThis.parentElement.innerHtml);
$.each($HtmlSpans, function(i1, o1) {
if ($(o1).attr('data-column-sort-ordering') == "") {
$(o1).attr('data-column-sort-ordering', 'ASC');
//TODO - How to apply this new "$(o1)" changes to parmThis so the parent script caller can be updated.
}
});
}
var foo2 = function()
{
$('#Box1 li[title="Model"] span.SpanRight-SortOrdering').click(function() {
fooMouseClick(this);
});
}
答案 0 :(得分:1)
代码$(parmThis.parentElement.innerHtml);
会创建 新对象 ,因此您所做的每项更改都不会更改原始对象。
试试这个:
var fooMouseClick = function(parmThis)
{
var $HtmlSpans = $(parmThis).parent().children();
$.each($HtmlSpans, function(i1, o1) {
if ($(o1).attr('data-column-sort-ordering') == "") {
$(o1).attr('data-column-sort-ordering', 'ASC');
}
});
}
另请注意,如果您的选择器基于动态更改的值,则应使用委托事件处理程序。例如,如果要处理具有data-column-sort-ordering="ASC"
的元素的click事件(此值已动态更改),请使用此代码:
$('#Box1').on("click",'li[title="Model"] span[data-column-sort-ordering="ASC"]',function() {
fooMouseClick(this);
});
答案 1 :(得分:0)
试试这个:
$("#Box1").on("click","li[title='Model'] span.SpanRight-SortOrdering",function() {
fooMouseClick(this);
});