我正在使用jQuery移动的1.3.2。我有一个data-clear-btn=true文本框。每当用户在文本框中键入字符时,一旦到达末尾,删除图标将隐藏文本框中的字符:
data-clear-btn=true
我想隐藏删除图标,一旦用户标签了。我已经尝试使用
$("#elementId").textinput("option", "clearBtn", false);
但它没有隐藏清除按钮为什么不呢?
lokaqttq1#
通过添加css,我没有隐藏控制按钮,而是将删除图标移到了文本框之外,这样用户就可以看到文本框中的内容。
$(".ui-input-clear").each(function(element){ $(this).css("right","-32px"); });
bvuwiixz2#
我相信现在的情况是变量/属性(data)已更新,但DOM未更新。使用jQuery .on()方法将blur和focus事件绑定到元素的textinput,应导致DOM在处理程序激发后立即刷新/重新读取。因此,它应反映事件处理程序内发生的更改,即对X1 M5 N1 X属性的更新。
data
.on()
blur
focus
textinput
备选案文1:
$("#elementId").textinput.on("blur", function(){ $("#elementId").data("clear-btn", false); }).on("focus", function(){ $("#elementId").data("clear-btn", true); });
或者下面的方法也可以:
备选案文2:
$("#elementId").textinput.on("blur", function(){ $("#elementId").attr("data-clear-btn", false); }).on("focus", function(){ $("#elementId").attr("data-clear-btn", true); });
但是如果你想最严格地遵守jQuery和HTML5/canvas,你可能应该使用option #1UPDATE## Heading ##我尝试了各种各样的变化-一些东西正在重置inputbox的CSS,以便ui-input-clear-hidden总是再次应用。jQuery移动的javascript使用这个来确定它是否可见...而不是data-clear-btn的值。我已经设法开销这两个.css(“显示”、“无”)和.css(“visibility”,“hidden”),实际的ui-input-clear-hidden类应用于其中,后者更可取,因为它不会删除元素,只会使其不可见。但是,在这两种情况下,它都会影响单击功能。可能需要更多的操作......但是,已经过了两个小时了...我不能再花时间在上面了。祝你好运。
inputbox
ui-input-clear-hidden
data-clear-btn
$("#elementId").on("blur", function(){ $("#elementId").data("clear-btn", false); console.log( $("#elementId") .data("clear-btn") ); $("#console").append( $("#elementId") .data("clear-btn").toString() + "</br>" ); $("#elementId") .parent() .children("a") .addClass( "ui-input-clear-hidden" ); $("#console").append( $("#elementId") .parent() .children("a") .attr("class") + "</br>" ); $("#elementId") .parent() .children("a") .css("visibility","hidden") ; }).on("focus", function(){ $("#elementId").data("clear-btn", true); $("#elementId") .parent() .children("a") .removeClass( "ui-input-clear-hidden" ); console.log( $("#elementId") .data("clear-btn") ); $("#console").append( $("#elementId") .parent() .children("a") .attr("class") + "</br>" ); $("#console").append( $("#elementId") .data("clear-btn").toString() + "</br>" ); $("#elementId") .parent() .children("a") .css("visibility","visible") ;
});
2条答案
按热度按时间lokaqttq1#
通过添加css,我没有隐藏控制按钮,而是将删除图标移到了文本框之外,这样用户就可以看到文本框中的内容。
bvuwiixz2#
根据备注更新
我相信现在的情况是变量/属性(
data
)已更新,但DOM未更新。使用jQuery.on()
方法将blur
和focus
事件绑定到元素的textinput
,应导致DOM在处理程序激发后立即刷新/重新读取。因此,它应反映事件处理程序内发生的更改,即对X1 M5 N1 X属性的更新。备选案文1:
或者下面的方法也可以:
备选案文2:
但是如果你想最严格地遵守jQuery和HTML5/canvas,你可能应该使用option #1
UPDATE## Heading ##我尝试了各种各样的变化-一些东西正在重置
inputbox
的CSS,以便ui-input-clear-hidden
总是再次应用。jQuery移动的javascript使用这个来确定它是否可见...而不是data-clear-btn
的值。我已经设法开销这两个.css(“显示”、“无”)和.css(“visibility”,“hidden”),实际的
ui-input-clear-hidden
类应用于其中,后者更可取,因为它不会删除元素,只会使其不可见。但是,在这两种情况下,它都会影响单击功能。可能需要更多的操作......但是,已经过了两个小时了...我不能再花时间在上面了。祝你好运。});