我在我的应用程序中使用Jcrop插件(Jquery).我决定使用一些ajax解决方案但是将值传递给函数有问题.我不知道是否缺乏JavaScript技能或Jcrop问题.这是代码
jQuery(window).load(function(){
jQuery('#cropbox').Jcrop({
onChange: showPreview,
onSelect: showPreview,
aspectRatio: 1
});
});
// Our simple event handler, called from onChange and onSelect
// event handlers, as per the Jcrop invocation above
function showPreview(coords)
{
if (parseInt(coords.w) > 0)
{
var rx = 100 / coords.w;
var ry = 100 / coords.h;
jQuery('#preview').css({
width: Math.round(rx * 500) + 'px',
height: Math.round(ry * 370) + 'px',
marginLeft: '-' + Math.round(rx * coords.x) + 'px',
marginTop: '-' + Math.round(ry * coords.y) + 'px'
}); …Run Code Online (Sandbox Code Playgroud) 我有一个使用AJAX导航的网站.我有两个页面,我使用点击和拖动功能
$(".myDragArea").mousedown(function(){
do stuff...
mouseDrag = true; // mouseDrag is global.
});
$("body").mousemove(function(){
if (mouseDrag) {
do stuff...
}
});
$("body").mouseup(function(){
if (mouseDrag) {
do stuff...
mouseDrag = false;
}
});
Run Code Online (Sandbox Code Playgroud)
我只是输入,所以请原谅任何偶然的语法错误.该站点的两个部分使用几乎相同的代码,唯一的区别在于$("body").mouseup()函数内部.但是,如果我访问第一部分,然后导航到第二部分,则在mouseup上运行的代码不会更改.我已经使用firebug逐步执行代码,并且$("body").mouseup()在第二部分加载时运行时没有错误或抛出.
那么,为什么$("body").mouseup()第二次运行时事件处理程序不会改变?
我试图通过使用clickevent序列化当前div.有关说明,请参阅代码:
$("#createreview").live('click', function() {
alert($(this).parent().serialize());
$.post('/admin/home/review/create/', $(this).parent().serialize(), function(data){
alert('Review succesfully added to database.' +data);
});
});
Run Code Online (Sandbox Code Playgroud)
警报将不显示任何内容,这意味着div未被序列化.这是有问题的HTML.它在一个对话框里面,这也是我必须使用live()的原因.
<div id="reviewdiv">
<input type="hidden" value="7" name="homeid">
<label>Content</label><textarea name="reviewcontent" id="reviews" rows="3" cols="60"></textarea><br>
<label>Author</label> <input type="text" name="reviewauthor"><button class="ui-state-default ui-corner-all" id="createreview">Save Review</button><button class="ui-state-default ui-corner-all" id="removereview">Remove Review</button><br>
</div>
Run Code Online (Sandbox Code Playgroud)
此代码通过使用clickevent和父选择器删除当前div也没有问题.
$("#removereview").live('click', function() {
$(this).parent().slideUp();
});
Run Code Online (Sandbox Code Playgroud) 嘿,我忙于小JavaScript项目,但我对下一个规则感到困惑;
<a href="#" onclick="removeMap('+ \"test\" +')" style="float:right; margin-right: 30px;"><img src="images/icons/collapse.gif"></a><br/>'
Run Code Online (Sandbox Code Playgroud)
它不需要onclick删除地图操作.我不知道我必须在()之间放置什么才能使文本放在那里.有人有解决方案吗?
谢谢
JavaScript的超时功能是
setTimeout(fun, 3600);
Run Code Online (Sandbox Code Playgroud)
但是,如果我不想运行任何其他功能,该怎么办?我可以setTimeout(3600);吗?
我注意到InfoWindow上的closeclick事件是在Google Maps V3中显示InfoWindow之前调用的.有没有人见过这个?错误?我对设计的误解?
考虑一个简单的例子:
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
html { height: 100% }
body { height: 100%; margin: 0px; padding: 0px }
#map_canvas {
}
</style>
<script type="text/javascript"
src="http://maps.google.com/maps/api/js?sensor=false"
>
</script>
<script type="text/javascript">
function initialize()
{
var newLatLng = new google.maps.LatLng(47.620513,-122.33963);
var myOptions = { zoom: 12,
center: newLatLng,
draggingCursor: 'pointer',
draggableCursor: 'default',
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map( document.getElementById("map_canvas"),
myOptions);
google.maps.event.addListener(map, 'click', function(event) {
placeMarker(event.latLng);
});
}
function placeMarker(location)
{
// Create new …Run Code Online (Sandbox Code Playgroud) <button id='hello'>Click Me!</button>
Run Code Online (Sandbox Code Playgroud)
$('#hello').click(alert('Hello, World!'));
Run Code Online (Sandbox Code Playgroud)
$('#hello').click(function() {
alert('Hello, World!');
}
Run Code Online (Sandbox Code Playgroud)
我想知道为什么第一个JS代码触发事件加载而不是点击.任何人都可以告诉我为什么function() { [code] }脚本需要正常工作?
在这个例子中,我使用了jQuery事件,但这并不是特定的,例如,我也需要将它与setTimeout一起使用.
我尝试做这样的Javascript函数作为另一个函数的参数?.但不幸的是,我还没有成功.我做错了什么,但我不知道是什么.请帮助我!
有一个div元素和一个函数.该函数的作用是:将另一个函数作为参数并在单击div元素时执行它:
更新3:我已尝试使用我的原始Web项目获取代码以使用您的示例.但我对一些参数有一些问题.我希望你能像其他人一样快地回答这个问题.
更新4:谢谢安迪E!和所有其他帮助过我的人!真的很感激!!
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
</head>
<body>
<div id='divElement'>Hello World!</div>
<script type="text/javascript">
function button(exefunction){
//Some code that decide which date
var date = '20101010';
document.getElementById('divElement').onclick = exefunction(date);
}
function testfunction(text){
document.getElementById('divElement').innerHTML = text;
}
button(testfunction);
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 考虑一下这个jQuery代码......
$('button#my').click(function(event) {
alert('hello');
});
$('button#my').click();
Run Code Online (Sandbox Code Playgroud)
显然,这会打开一个警报窗口.
但是,我可以用jQuery告诉,如果该事件处理程序是用代码触发的,或者是用户点击它(例如,没有丑陋的标记检查var userClicked = true).
我以为会有一个属性event,但我无法弄明白.
这可能吗?
谢谢.
所以我需要能够打印一个jQuery UI对话框.到目前为止,我的解决方案使我创建了一个"打印"按钮,创建一个<iframe>填充了对话框内容的新内容,然后打印出来.
我希望能够<iframe>在打印完成后立即将其删除.有什么方法可以做到这一点吗?我知道在IE中有一个onAfterPrint事件,但我需要它在所有浏览器中都能运行.
谢谢!
编辑:我欣赏其他建议,但我遇到了各种问题,试图使用CSS规则来打印jQuery对话框.在具有大量内容和多个对话框的页面上,叠加层和其他元素的结构将导致打印额外的空白页.我尝试过很多{visibility:hidden; }和{display:none; 但无法找到解决方案.