当我在javascript中编码时,我意识到了一些奇怪的东西,特别是对于一些jquery函数。
这是我的代码
<?php // Encoded in UTF-8
if(isset($_SESSION['username']))
{
?>
<script type="text/javascript">
function showEvent(nid)
{
$j=jQuery.noConflict();
$j.get("getGestionEvent.php?type=show&nid="+nid, function(data){
document.getElementById("eventdiv").innerHTML = data;
});
}
</script>
<h2> Event </h2>
<fieldset>
<legend> Add </legend>
<div style="margin-top:10px;">
<label for="date"> Date : </label>
<span style="margin-left:20px;">
<button id="ButtonCreationDemoButton">
<img src="img/calendar.png" alt="[calendar icon]"/>
</button>
</span>
</div>
<form name="events" action="index.php?p=event" method="post">
<div style="margin-top:5px;">
<span style="margin-left:-1px;">
<input type="text" name="ButtonCreationDemoInput" id="ButtonCreationDemoInput"/>
</span>
</div>
<div style="margin-top:10px;">
<label for="date"> Description : </label>
</div>
<div style="margin-top:5px;">
<span style="margin-left:-1px;">
<input type="text" name="desc" id="desc" maxlength="100">
</span>
</div>
<div style="margin-top:5px;">
<input type="submit" value="Ajouter">
<div>
</fieldset>
</form>
<div id="eventdiv"></div>
<script type="text/javascript">
// If I don't call the function, the other script doesn't make an error
showEvent(0);
</script>
<script>
$('#ButtonCreationDemoButton').click(
function(e) {
$('#ButtonCreationDemoInput').AnyTime_noPicker().AnyTime_picker().focus();
e.preventDefault();
} );
</script>
<?php
}
else
{
echo '<p style="color:red"> You cannot see this page. </p>';
}
?>
这是一个带有2个文本框的简单表单,但我有一个带有日历图像的按钮,使文本框上方的日历显示为ButtonCreationDemoInput,以便用户轻松选择日期。如果我删除调用函数showEvent()的行,日历显示没有问题。但是如果我让函数出现在那里,我就会收到错误而我看不到日历:
未捕获的TypeError:对象[对象DOMWindow]的属性'$'不是函数
它指向一行:$('#ButtonCreationDemoButton')。点击(
顺便说一句,showEvent只给出一个名为eventdiv的div来自数据库的数据表。
这不是我第一次看到这种问题。这只发生在我重新影响div的内容时。
有人可以帮我这个吗?
答案 0 :(得分:2)
$是jQuery对象的标准变量别名。但是你正在使用jQuery.noConflict();
。这会删除$
别名。相反,您必须使用jQuery
一词,即jQuery('#ButtonCreationDemoButton')
。
基本上,调用showEvent()
,删除$
别名,然后尝试在以下script
标记中使用它。
但是,在您的代码中,您不只是致电jQuery.noConflict()
,而是将其分配给变量$j
。这允许您使用$j
作为jQuery别名,即$j('ButtonCreation...')
。