我想在页面加载时运行以下功能,并在单击div#trigger时重新运行。当你单击div#trigger时,一切都很好。但是在页面加载时,代码似乎有时会工作,但有时会缩进错误的数量,并且警报(我刚刚放在那里用于调试目的)永远不会触发。谢谢
function textIndentFunc () {
textString = $('#from-1 :selected').text();
$('#hidden').text(textString);
textWidth = $('#hidden').width();
inputWidth = $('#from-1 select').width();
indentMy = (inputWidth / 2) - (textWidth / 2);
$('#from-1').css('text-indent',indentMy);
}
$('#trigger').click(function(){
textIndentFunc();
alert('fire');
});
textIndentFunc();
更新 - 我应该提到这个代码在document.ready上运行。
更新 - 将代码移动到window.load不会改变任何内容。
答案 0 :(得分:2)
将函数调用包装在document.ready处理程序中,如下所示......
$(function() {
textIndentFunc();
});
确保在尝试执行操作之前加载DOM,否则您将在不同时间获得不同的结果,具体取决于加载的内容和不加载的内容。
答案 1 :(得分:2)
您的功能需要在document.ready call
中调用$(document).ready(function() {
textIndentFunc();
});
答案 2 :(得分:1)
尝试以下
$(document).ready(function () {
$('#trigger').click(function(){
textIndentFunc();
alert('fire');
});
});
function textIndentFunc () {
textString = $('#from-1 :selected').text();
$('#hidden').text(textString);
textWidth = $('#hidden').width();
inputWidth = $('#from-1 select').width();
indentMy = (inputWidth / 2) - (textWidth / 2);
$('#from-1').css('text-indent',indentMy);
}
textIndentFunc();
<div id="trigger">Hai</div>
答案 3 :(得分:0)
你还有另一个也在页面加载时运行的功能吗?因为如果是这种情况,可能是2个函数存在冲突......
答案 4 :(得分:0)
如果您已经在textIndendFunc
中呼叫$(document).ready
但仍未达到预期效果,请尝试将textIndentFunc
移至$(window).load
。